日安,
在sqlcl中,我想运行一个构建insert语句的查询。例如:
SELECT /*insert*/* FROM TABLE;但是每个日期值都以to_timestamp('date', 'format')的形式返回,所以我想要获取to_date('date', 'format')。
我需要设置什么才能使它发生?
谢谢!!
编辑:
例如..。我有两个列id和date的表datesaving。如果我运行这个查询
SELECT /*insert*/ id,date FROM datesaving ;
我得到了
Insert into DATASAVING (ID, DATE) values (1,to_timestamp('2016-02-15 11:05:07','RRRR-MM-DD HH24:MI:SS'));
我想要的是这个
Insert into DATASAVING (ID, DATE) values (1,to_date('2016-02-15 11:05:07','RRRR-MM-DD HH24:MI:SS'));
我知道我可以改变de nls_format,但我不知道如何改变这一点。
发布于 2018-02-02 21:52:04
这是因为我们在sqlcl中得到的元数据告诉我们日期列是一个时间戳,所以代码将其视为时间戳。然而,它将会工作得很好。
SQL> create table test_insert(id number,dt date,ts timestamp);
Table TEST_INSERT created.
SQL> insert into test_insert values(1,sysdate,systimestamp);
1 row inserted.
SQL> set sqlformat insert
SQL> select * from test_insert;
REM INSERTING into TEST_INSERT
SET DEFINE OFF;
Insert into TEST_INSERT (ID,DT,TS) values (1,to_timestamp('02-FEB-18','DD-MON-RR HH.MI.SSXFF AM'),to_timestamp('02-FEB-18 01.47.57.017643000 PM','DD-MON-RR HH.MI.SSXFF AM'));
<<<copy pasted to run the output >>>
SQL> insert into TEST_INSERT (ID,DT,TS) values (1,to_timestamp('02-FEB-18','DD-MON-RR HH.MI.SSXFF AM'),to_timestamp('02-FEB-18 01.47.57.017643000 PM','DD-MON-RR HH.MI.SSXFF AM'));
1 row inserted.https://stackoverflow.com/questions/48397093
复制相似问题