如何使用带有 SQL*Plus 的 PL/SQL 程序文件
How to use a PL/SQL procedure file with SQL*Plus
我想执行 .sql 文件中的 PL/SQL 过程。
我用 SQL*Plus 调用我的 .sql 文件:
@myfile.sql
这里是myfile.sql
declare
listTotal number := 0;
nbrCommit number := 200;
begin
select count(1) into listTotal from MKTMLF.TMP_ID_CLI_SUPPR;
[... different updates here ....]
commit;
if listTotal > nbrCommit THEN
[... different updates here ....]
commit;
end if;
end;
当我将 PL/SQL 粘贴到 Oracle SQL 开发人员中时没问题,它告诉我 "Procedure PL/SQL finished" 但是当我使用 SQL*Plus 时它只显示给我一个数字
55
仅此而已!实际上我发现这些数字是我 file.sql.
中的行数
问题是什么?为什么在 Oracle SQL 开发人员和 SQL*Plus 中可以?
请在文件末尾添加正斜杠 /
。这将要求客户 运行 代码。
后面的 / 是 sqlplus 和 sqlcl 寻找的东西,知道它是块的结尾,请 运行 上面的代码块。
在 SQLDEV 中,有一个智能解析器可以从语法上确定块的结尾以知道要执行什么。
我想执行 .sql 文件中的 PL/SQL 过程。
我用 SQL*Plus 调用我的 .sql 文件:
@myfile.sql
这里是myfile.sql
declare
listTotal number := 0;
nbrCommit number := 200;
begin
select count(1) into listTotal from MKTMLF.TMP_ID_CLI_SUPPR;
[... different updates here ....]
commit;
if listTotal > nbrCommit THEN
[... different updates here ....]
commit;
end if;
end;
当我将 PL/SQL 粘贴到 Oracle SQL 开发人员中时没问题,它告诉我 "Procedure PL/SQL finished" 但是当我使用 SQL*Plus 时它只显示给我一个数字
55
仅此而已!实际上我发现这些数字是我 file.sql.
中的行数问题是什么?为什么在 Oracle SQL 开发人员和 SQL*Plus 中可以?
请在文件末尾添加正斜杠 /
。这将要求客户 运行 代码。
后面的 / 是 sqlplus 和 sqlcl 寻找的东西,知道它是块的结尾,请 运行 上面的代码块。
在 SQLDEV 中,有一个智能解析器可以从语法上确定块的结尾以知道要执行什么。