INSERT INTO DETAIL (PPD_ID, PPD_ID,PPD_ENTRY_DATE, PPD_IGM_ID, PPD_DFM_ID, PPD_DRM_ID, PPD_HEIGHT, PPD_UOM_ID, PPD_FTM_ID, PPD_FRQ_ID, PPD_START_DATE_TIME, PPD_END_DATE_TIME, PPD_STATUS, PPD_STM_ID)
VALUES ('WS00318229',2440900,'29-12-2015',350,1,1,50,46,1,1,'29-12-2015','29-12-2015','PRESCRIBED',6)
当我使用php中的上述查询将记录插入到oracle数据库时,它给出了以下错误。
oci_execute(): ORA-01843: not a valid month invalid
但是当我使用下面的查询时,它没有给出任何错误,而是插入了记录。如何解决这个问题?这个错误已经存在了,但我不清楚答案。任何想法为什么会这样。
INSERT INTO DETAIL (PPD_ID, PPD_ID,PPD_ENTRY_DATE, PPD_IGM_ID, PPD_DFM_ID, PPD_DRM_ID, PPD_HEIGHT, PPD_UOM_ID, PPD_FTM_ID, PPD_FRQ_ID, PPD_START_DATE_TIME, PPD_END_DATE_TIME, PPD_STATUS, PPD_STM_ID)
VALUES ('WS00318229',2440900,'29-DEC-2015',350,1,1,50,46,1,1,'29-DEC-2015','29-DEC-2015','PRESCRIBED',6)
您正在将字符串插入到date
列中。这样做时,oracle将根据您的NLS设置执行隐式转换,特别是nls_date_format
。显然,当您从php脚本和从您使用的某个客户端(SQL*Plus、SQL Developer等)连接时,NLS设置是不同的。
您可以使用以下查询检查会话参数。
SELECT * FROM nls_session_parameters;
对于以'29-dec-2015'
nls_date_format
格式显示的日期,应为'dd-mon-yyyy'
。如果它有其他值,可以使用以下查询更改它。
alter session set nls_date_format='DD-MON-YYYY'
TO_DATE('29-DEC-2015', 'DD-MON-YYYY')
我正在用oracle数据库用php制作一个库存系统。有一个页面,在“出售”按钮上的admin clik日期和时间以及其他数据将存储在oracle数据库中,我可以输入日期,但当输入时间时,屏幕上会显示一个错误“warning:oci_execute():ora-01843:not a valid month”我的代码如下。请帮忙... 问候...
其中为 附言。我知道那里有安全问题,但现在不是问题。
我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)
下面是查询
然后我运行下面这行: 当ASP.NET运行这行时,我得到错误“ORA-01843:不是一个有效的月份”。 似乎命令将“dateResult”列理解为日期,但它是一个整数。 我已经试过这样的石膏了,也不起作用:
我有一个在PL-SQL视图中使用的查询。该视图包含一个名为Jde_date的函数,该函数采用Julian格式的date参数并将其转换为Gregorian格式,它工作得很好。 查询如下: 但是当我发布报告时,我得到错误ORA-01843:不是一个有效的月份。 我该怎么解决?