2016-12-28 49 views
0

所以我有沒有問題,編譯程序,但是當我運行它,它返回:ORA-00911:無效的字符問題?

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; 

因爲它沒有問題,運行過程體:)之外

+0

刪除;在執行即時查詢中 – Milaci

回答

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;