问题描述
嗨,古鲁斯,
请帮助满足以下要求
CREATE TABLE z_test (date_TERVAL VARCHAR2 (1000)) ;
将定义设置为OFF ;
插入到Z_TEST ( date_InterVAL)
值('系统日期') ;
提交;
我尝试了下面的SQ1 :
SELECT to_date ( xx,'mm/dd/yyyy')
自( SELECT date_TERVAL xx自z_test ) ;
我得到的错误是:
ORA-01858 :发现非数字字符,但应为数字
输出:
2/24/2016
请帮助满足以下要求
CREATE TABLE z_test (date_TERVAL VARCHAR2 (1000)) ;
将定义设置为OFF ;
插入到Z_TEST ( date_InterVAL)
值('系统日期') ;
提交;
我尝试了下面的SQ1 :
SELECT to_date ( xx,'mm/dd/yyyy')
自( SELECT date_TERVAL xx自z_test ) ;
我得到的错误是:
ORA-01858 :发现非数字字符,但应为数字
输出:
2/24/2016
专家解答
这将插入字符串“sysdate”,而不是函数sysdate的结果。您需要删除引号。
请注意,您还可以将日期隐式转换为字符串。因此, Oracle存储的价值将取决于NLS设置:
要避免这种情况,请在插入sysdate之前先将其to_char ()。或者- -甚至更好- -只是把它存储为一个日期!
请注意,您还可以将日期隐式转换为字符串。因此, Oracle存储的价值将取决于NLS设置:
SQL> select value from nls_session_parameters 2 where parameter = 'NLS_DATE_FORMAT'; VALUE ------------------------------ DD-MON-RR SQL> SQL> insert into z_test ( date_interval ) 2 values ( sysdate ) ; SQL> SQL> alter session set nls_date_format = 'mm/dd/yyyy'; SQL> SQL> insert into z_test ( date_interval ) 2 values ( sysdate ) ; SQL> SQL> select * from z_test; DATE_INTERVAL -------------------- 24-FEB-16 02/24/2016
要避免这种情况,请在插入sysdate之前先将其to_char ()。或者- -甚至更好- -只是把它存储为一个日期!
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




