【发布时间】:2020-09-22 07:31:33
【问题描述】:
我有两个脚本需要根据我的数据库中是否存在表来执行。
所以我创建了如下第三个脚本,它检查条件并调用相应的脚本。 [因为我的安装程序无法访问db,并且安装时只能调用一个脚本]
declare
cnt number;
begin
select count(*)
into cnt
from all_tables where table_name = 'VQ_REPORT_LAUNCHER';
if (cnt>0) then
begin
@VQ_Alter_Script.sql;
end;
else
begin
@VQ_Create_Script.sql;
end;
end if;
结束;
我收到以下错误 - 第 10 行的错误: ORA-06550:第 10 行,第 1 列: PLS-00103:在预期以下之一时遇到符号“CREATE”:
注意 - 当我直接从 sql plus 执行我的创建/更改脚本时,它可以工作。 只有当我尝试使用 IF-ELSE 通过第三个脚本执行它们时,我才会在 sql plus 中收到上述错误。
【问题讨论】:
-
如果不使用不同的近似值,您无法从 PL/SQL 调用 sql 脚本,例如 SQL_SCRIPT 作业类型的 DBMS_SCHEDULER 外部 API
-
脚本将从安装程序调用,我们只需要检查表是否存在并相应地调用另一个脚本。不能在 .sql 中完成吗?