为什么我不能直接在 PLSQL 匿名块之后写 DDL?
Why can't I write DDL directly after a PLSQL anonymous block?
我有以下简单的脚本。
declare
begin
null;
end;
create table &&DB_SCHEMA..test_table (
test_column varchar(20)
);
执行结束,出现以下错误
ORA-06550: line 6, column 1:
PLS-00103: Encountered the symbol "CREATE"
- 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
我不能在匿名块之后直接使用 DDL 吗?我是否被迫在匿名块中使用 EXECUTE IMMEDIATE
来做到这一点?
您只是缺少一个“/”:
SQL> declare
2 begin
3 null;
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> create table create_test_table (
2 test_column varchar(20)
3 );
Table created.
Here 你发现了更多东西。
我有以下简单的脚本。
declare
begin
null;
end;
create table &&DB_SCHEMA..test_table (
test_column varchar(20)
);
执行结束,出现以下错误
ORA-06550: line 6, column 1:
PLS-00103: Encountered the symbol "CREATE"
- 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
我不能在匿名块之后直接使用 DDL 吗?我是否被迫在匿名块中使用 EXECUTE IMMEDIATE
来做到这一点?
您只是缺少一个“/”:
SQL> declare
2 begin
3 null;
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> create table create_test_table (
2 test_column varchar(20)
3 );
Table created.
Here 你发现了更多东西。