Oracle SQL语句优化
下面语句的作用是向表mt_seal_inst中插一条记录,SEAL_DATE,WRITE_DATE这两字段的值为表mt_detect_tmnl_rslt中detect_date字段值+129秒,感觉这样写执行效率比较慢,请高手们给优化一下,谢谢 insert into mt_seal_inst (DETECT_TASK_NO,BAR_CODE,SEAL_DATE,WRITE_DATE) values ( 'DETECT_TASK_NO', 'strBarcode', to_char(to_date((select detect_date from mt_detect_tmnl_rslt where bar_code = 'strBarcode'),'yyyy-mm-dd hh24:mi:ss')+1/24/60/60*129,'yyyy-mm-dd hh24:mi:ss'), to_char(to_date((select detect_date from mt_detect_tmnl_rslt where bar_code = 'strBarcode'),'yyyy-mm-dd hh24:mi:ss')+1/24/60/60*129,'yyyy-mm-dd hh24:mi:ss'), )
最满意答案
试试这个: insert into mt_seal_inst (detect_task_no, bar_code, seal_date, write_date) select 'DETECT_TASK_NO', 'strBarcode', to_char(to_date(detect_date, 'yyyy-mm-dd hh24:mi:ss') + numtodsinterval(3, 'second')), to_char(to_date(detect_date, 'yyyy-mm-dd hh24:mi:ss') + numtodsinterval(3, 'second')) from mt_detect_tmnl_rslt where bar_code = 'strBarcode' and rownum=1;还不行的话你再试试这个: insert into mt_seal_inst (detect_task_no, bar_code, seal_date, write_date) with t as (select to_char(to_date(detect_date, 'yyyy-mm-dd hh24:mi:ss') + numtodsinterval(3, 'second')) col from mt_detect_tmnl_rslt where bar_code = 'strBarcode' and rownum = 1) select 'DETECT_TASK_NO', 'strBarcode', col, col from t你的表我没有建没试,有问题你告诉我。更多推荐
发布评论