SQL Developer 17.4导出DML时SYSDATE被转to_date()的解决求助
SQL Developer 17.4导出DML保留SYSDATE的解决方法
调整导出向导的日期格式设置
右键目标表选择「导出」,在导出类型里选「Insert」,进入设置界面后找到数据格式化相关选项卡,把日期列的转换方式从「转为字面量」改成「保留原表达式」(不同版本选项名称可能略有不同,找能保留函数调用的选项),确认后导出就能保留SYSDATE。用自定义脚本生成DML
如果向导设置不生效,直接写PL/SQL脚本生成符合要求的插入语句:SET SERVEROUTPUT ON; DECLARE CURSOR c_data IS SELECT * FROM table_name; v_sql VARCHAR2(4000); BEGIN FOR rec IN c_data LOOP v_sql := 'INSERT INTO table_name (INT_OBJ_ID,INT_OBJ_NM,CREATE_DT,CREATE_USER_ID,UPDATE_DT,UPDATE_USER_ID) VALUES (' || rec.INT_OBJ_ID || ',''' || rec.INT_OBJ_NM || ''',SYSDATE,''' || rec.CREATE_USER_ID || ''',SYSDATE,''' || rec.UPDATE_USER_ID || ''');'; DBMS_OUTPUT.PUT_LINE(v_sql); END LOOP; END; /执行脚本后复制输出的语句即可,这个方法能精准控制日期列输出SYSDATE。
注意NLS设置的局限性
不要在NLS里直接输入SYSDATE,那不符合日期格式要求。NLS只能调整导出的日期字面格式,没法直接保留SYSDATE函数,所以优先用前两种方法。
内容的提问来源于stack exchange,提问作者Sakshi
相关产品推荐
相关产品推荐

