2013-10-01 188 views
0

在執行下面的存儲過程時,Oracle在Oracle中出現低於錯誤的錯誤。你能不能讓我知道什麼是錯誤。執行存儲過程時出錯

[Error] Syntax check (5: 22): ERROR line 5, col 22, ending_line 5, ending_col 22, Found 'TABLE', Expecting: ; -or- := -or- . -or- @ -or- ( ROW 

PROCEDURE MyProcedure(res OUT NUMBER) 
AS 
     is_output BOOLEAN; 
BEGIN 
TRUNCATE TABLE MyTable; 

END MyProcedure; 
+0

如果我取代「截斷」與「刪除」,它是在沒有任何執行錯誤。 – Srinivasan

回答

4

TRUNCATE是一個DDL語句,所以你需要從PL/SQL調用它時使用EXECUTE IMMEDIATE ..

PROCEDURE MyProcedure(res OUT NUMBER) 
AS 
    is_output BOOLEAN; 
BEGIN 

    EXECUTE IMMEDIATE 'TRUNCATE TABLE MyTable'; 

END MyProcedure; 
+0

它正在工作。謝謝。 – Srinivasan

+0

@Srinivasan,請注意,作爲DDL的TRUNCATE會在DELETE之前和之後發出COMMIT,而DELETE不同於DML。 –