Установить значение переменной - PullRequest
0 голосов
/ 06 ноября 2019

Я объявил переменную для v_error, но, когда я начинаю, я устанавливаю числовое значение для переменной, я получаю ошибку, равную «Синтаксическая ошибка»

Код ниже:

DECLARE 
    v_error varchar(1);
BEGIN
    EXECUTE IMMEDIATE 'TRUNCATE TABLE :v_tab1';
EXCEPTION
    WHEN OTHERS THEN
        IF SQLCODE = -942 THEN
            set @v_error = 0;  — error here

            DBMS_OUTPUT.put_line('This table does not exist!');
        ELSE             
            RAISE;                  
            DBMS_OUTPUT.put_line('Exception Occurred on table drop' );
            v_error := '1';
        END IF;
END;

1 Ответ

2 голосов
/ 06 ноября 2019

Не обращая внимания на использование :v_tab1, которое сильно зависит от клиента / инструмента, который вы используете для запуска этого кода, вам нужно отредактировать свой синтаксис в соответствии с тем, что вы уже сделали несколькими строками после:

DECLARE 
    v_error varchar(1);
BEGIN 
    EXECUTE IMMEDIATE 'TRUNCATE TABLE :v_tab1';
EXCEPTION                
WHEN OTHERS THEN     
    IF SQLCODE = -942 THEN            
        v_error := '0'; /*    <------ like you do for v_error := '1'; */

        DBMS_OUTPUT.put_line('This table does not exist!');
    ELSE             
        RAISE;                  
        DBMS_OUTPUT.put_line('Exception Occurred on table drop' );
        v_error := '1';                  
    END IF;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...