2013-10-01 3 views
0

Ошибка получения ошибок в 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 заявление, так что вам нужно использовать EXECUTE IMMEDIATE при вызове его из PL/SQL ..

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

    EXECUTE IMMEDIATE 'TRUNCATE TABLE MyTable'; 

END MyProcedure; 
+0

Работает. Благодарю. – Srinivasan

+0

@Srinivasan, просто помните, что TRUNCATE, будучи DDL, выдает COMMIT до и после - в отличие от DELETE, который является DML. –

Смежные вопросы