这可能是一个愚蠢的想法。我正在尝试编写一个 SQL*Plus .sql 脚本,我可以从 Windows 批处理文件中调用该脚本,该文件本身使用 dbms_output.put_line 生成一个新的 .sql 脚本。到目前为止,这就是我的脚本:
set echo off;
set serverout on;
conn user@pass;
spool E:\new_script.sql
DECLARE
CURSOR c_groups IS
SELECT * FROM table;
s varchar2(4000);
BEGIN
dbms_output.put_line('BEGIN');
FOR x IN c_groups LOOP
s := 'INSERT INTO TABLE blah VALUES ('''||x.name||''','||x.id||');';
END LOOP;
dbms_output.put_line(s);
dbms_output.put_line('COMMIT;');
dbms_output.put_line('END;');
dbms_output.put_line('/');
END;
/
spool off;
exit;
但是,当我这样做时,我new_script.sql
只会说“PL/SQL 过程已成功完成”。 任何想法如何使dbms_out.put_line
实际显示他们的信息?
而且我实际上并没有这样做来构建插入语句 - 这些只是一个简单的示例,显示了我正在尝试做的事情的要点。