PL/SQL,执行立即麻烦
PL/SQL, Execute Immediate troubles
我正在学习 Pl/SQL 并且对 EXECUTE IMMEDIATE 有疑问。
我检查这个:
CREATE TABLE x(id number(10) );
而且这个工作正常。目前我想用 BEGIN EXECUTE IMMEDIATE;END 来做,试试:
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) );' ;
END
我有 2 条消息出错:
- About symbol ";" was replaced to "end-of-file" to be continue
- That we meet "end-of-file" symbol when it should be "; identity"
我应该如何正确使用 BEGIN/EXECUTE IMMEDIATE/END?谢谢
在动态 SQL 中,您不终止语句 - 删除此分号:
... number(10) );'
^
this
所以:
SQL> BEGIN
2 EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) )' ;
3 END;
4 /
PL/SQL procedure successfully completed.
SQL> desc x
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
SQL>
我正在学习 Pl/SQL 并且对 EXECUTE IMMEDIATE 有疑问。
我检查这个:
CREATE TABLE x(id number(10) );
而且这个工作正常。目前我想用 BEGIN EXECUTE IMMEDIATE;END 来做,试试:
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) );' ;
END
我有 2 条消息出错:
- About symbol ";" was replaced to "end-of-file" to be continue
- That we meet "end-of-file" symbol when it should be "; identity"
我应该如何正确使用 BEGIN/EXECUTE IMMEDIATE/END?谢谢
在动态 SQL 中,您不终止语句 - 删除此分号:
... number(10) );'
^
this
所以:
SQL> BEGIN
2 EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) )' ;
3 END;
4 /
PL/SQL procedure successfully completed.
SQL> desc x
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
SQL>