ORA-00911:无效的角色问题?

时间:2016-12-28 14:00:20

标签: oracle plsql

所以我有没有问题编译的程序,但是当我运行它时会返回:

Error report -
ORA-00911: invalid character
ORA-06512: at "MYDATABASE.MY_PROCEDURE", line 4
ORA-06512: at line 2
00911. 00000 -  "invalid character"
*Cause:    identifiers may not start with any ASCII character other than
           letters and numbers.  $#_ are also allowed after the first
           character.  Identifiers enclosed by doublequotes may contain
           any character other than a doublequote.  Alternative quotes
           (q'#...#') cannot use spaces, tabs, or carriage returns as
           delimiters.  For all other contexts, consult the SQL Language
           Reference Manual.
*Action:

此处的程序

CREATE OR REPLACE PROCEDURE MY_PROCEDURE
IS
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE CHILD_TABLE ADD CONSTRAINT FK_CHILD_TABLE_PARENT_TABLE FOREIGN KEY (PARENT_TABLE_ID) REFERENCES PARENT_TABLE(ID) ON DELETE CASCADE;';
END;

以下是我如何称呼它:)

BEGIN
MY_PROCEDURE;
END;

我可以提一下

没有错
ALTER TABLE CHILD_TABLE ADD CONSTRAINT FK_CHILD_TABLE_PARENT_TABLE FOREIGN KEY (PARENT_TABLE_ID) REFERENCES PARENT_TABLE(ID) ON DELETE CASCADE;

因为它在程序体之外运行没有问题:)

1 个答案:

答案 0 :(得分:2)

;中删除查询中的EXECUTE IMMEDIATE

CREATE OR REPLACE PROCEDURE MY_PROCEDURE
IS
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE CHILD_TABLE ADD CONSTRAINT FK_CHILD_TABLE_PARENT_TABLE FOREIGN KEY (PARENT_TABLE_ID) REFERENCES PARENT_TABLE(ID) ON DELETE CASCADE';
END;
相关问题