提问人:Sakshi 提问时间:8/9/2023 更新时间:8/9/2023 访问量:64
SYSDATE 在 SQL 开发人员 DML 导出中隐式转换为 to_date()
SYSDATE is implicitly is getting converted to to_date() in SQL developer DML Export
问:
我正在尝试从sql developer(v 17.4)导出dml,但日期列没有按预期出现。
在插入记录时,我使用了 SYSDATE 作为日期字段,但我认为 sql 开发人员隐含地将该 SYSDATE 转换为 to_date()。这是我用来插入的查询 -
插入table_name (INT_OBJ_ID,INT_OBJ_NM,CREATE_DT,CREATE_USER_ID,UPDATE_DT,UPDATE_USER_ID) 值 (2016,'RDS_BV_RETURN_MAIL_INFO',SYSDATE,'User01','User01');
但是在 DML 导出中,我得到了这个 -
插入table_name (INT_OBJ_ID,INT_OBJ_NM,CREATE_DT,CREATE_USER_ID,UPDATE_DT,UPDATE_USER_ID) 值 (2016,'RDS_BV_RETURN_MAIL_INFO',to_date('09-AUG-23','DD-MON-RR'),'User01','User01',to_date('09-AUG-23','DD-MON-RR'),'User01');
加急出口 : 插入table_name (INT_OBJ_ID,INT_OBJ_NM,CREATE_DT,CREATE_USER_ID,UPDATE_DT,UPDATE_USER_ID) 值 (2016,'RDS_BV_RETURN_MAIL_INFO',SYSDATE,'User01',SYSDATE ,'User01');
有谁知道我们如何解决这个问题?
[我的导出向导截图(以防有帮助)](https://i.stack.imgur.com/C0Lja.png)
我试图找到默认隐式转换的设置,但找不到。甚至试图在 NLS 中提供 SYSDATE,但它需要有效的日期格式。
答:
导出提取它在该列中找到的内容。它没有找到(作为函数名称),而是在插入时函数返回的值,显然,对于该行,它是 2023 年 8 月 9 日。SYSDATE
SYSDATE
导出(实际上是编程的人)选择使用具有适当格式掩码的函数:。to_date
to_date('09-AUG-23', 'DD-MON-RR')
不过,我宁愿看到不同的东西,例如.您当然无法将“AUG”插入到我的克罗地亚语数据库中 - 当然,并非没有额外的设置(更改会话以设置格式模型和语言)。
to_date('09.08.2023', 'dd.mm.yyyy')
我不认为你可以出口。但是,您可以做的是从导出中省略日期列:在“指定数据”步骤中,不要包含所有列 () - 单击铅笔按钮并取消选中日期列。然后,在目标端,将列的默认值设置为 ,例如SYSDATE
*
sysdate
alter table target_table modify date_column default sysdate;
或在插入后手动填充它,例如
update target_table set date_column = sysdate where date_column is null;
评论
to_date(...)
sysdate