前情提要:需要写一个脚本工具,自动查询一个表 table_name1 的内容插入到另一张表 table_name2 中;
用循环语句实现,在pl/sql里可以正常运行;但是跑脚本却不行;
定位原因:
发现是停在语句编辑的地方,没有执行;
解决方案:
加 / 退出编辑开始执行上面的sql语句;
(ps:oracle)
declare
i int;
BEGIN
<span style="white-space:pre"> </span>i := 10070;
FOR temp IN(SELECT name_chn FROM table_name1)
LOOP
begin
i := i+1;
insert into table_name2(ID,NAME)
values(i,temp.name_chn);
--dbms_output.put_line(i);
--dbms_output.put_line(temp.id_env);
exception
when others then
dbms_output.put_line(temp.name_chn || 'prefix exists');
end;
END LOOP;
END;
-- 要加 / 退出编辑开始执行上面的语句
/
commit;
exit;
顺便附上此次的脚本,以便查阅:
echo startBat
cd /d D:\testTool
sqlplus usrname/password@LOCAL_DATABASE @xxx.sql >> D:\log\xxx.log
Finish!! Please check log file in D:\log