在SQL Developer中,我创建了一个导出文件,.sql文件(非常大)。它包含数百个像这样的插入语句:
"Insert into SCHEMA.TABLE (
... ,
CREATEDATE,
MODIFIEDDATE,
....
)
values (
... ,
to_timestamp('20-AUG-12 01.09.53.271000000 AM','DD-MON-RR HH.MI.SS.FF AM'),
to_timestamp('20-AUG-12 01.09.53.271000000 PM','DD-MON-RR HH.MI.SS.FF PM'),
...
);"
当我在SQL Developer中运行它时,很好用。但我无法使用SQL Developer导入一些.sql文件(或者我不知道如何操作)。
当我使用SQL * Plus运行它时,会出现以下错误:
ORA-01855:需要AM / A.M.或PM / P.M。
如果我从插入语句中删除AM / PM关键字,则SQL * Plus可以插入行,否则就没有成功。AM / PM有什么问题吗?
以下是确切的插入命令:
Insert into SCHEMA.TABLE(
ENTRYID,GROUPID,COMPANYID,USERID,USERNAME,CREATEDATE,MODIFIEDDATE,
CLASSNAMEID,CLASSPK,CLASSUUID,VISIBLE,STARTDATE,ENDDATE,PUBLISHDATE,
EXPIRATIONDATE,MIMETYPE,TITLE,DESCRIPTION,SUMMARY,URL,HEIGHT,WIDTH,
PRIORITY,VIEWCOUNT
) values (
11902,11005,10136,10178,'Test Test',
to_timestamp('20-AUG-12 01.09.53.271000000 AM','DD-MON-RR HH.MI.SS.FF AM'),
to_timestamp('20-AUG-12 01.09.53.271000000 PM','DD-MON-RR HH.MI.SS.FF PM'),
10076,11900,'AAA',1,null,null,null,null,null,
'ABC','XyZ',null,null,0,0,0,2563
);
to_timestamp()
调用插入到具有timestamp
列的表中可以正常工作。据我所知,AM/PM 文字值不受 NLS 设置的影响,因此我认为这可能不是问题所在。我必须假设您已经发布了 确切 的运行内容;完整的命令(未更改名称)会给人更多信心,以及已经起作用的修改版本。SQL Developer 的问题是什么;您可以打开脚本文件,然后“运行脚本”吗? - Alex Poole'DD-MON-RR HH.MI.SS.FF AM'
,还是总是/有时使用'DD-MON-RR HH24.MI.SS.FF'
? - MT0select value from nls_session_parameters where parameter = 'NLS_DATE_LANGUAGE'
会得到什么结果?希望不是英语;斯洛伐克语将是一个好答案... - Alex Poole