PLS-00103: Обнаружен символ «ВЫПОЛНИТЬ» при ожидании одного из следующих действий: - PullRequest
0 голосов
/ 24 сентября 2019

Может кто-нибудь сообщить мне, где проблема в моем коде?

SET SERVEROUTPUT ON;
    daclare 
    sql_stmt varchar(500);
    n number(3);
    n :=0;
    begin
    FOR vori IN (select ri from voucher_p1 where vchstate=chr(4))
    LOOP
        sql_stmt := 'select count(sernum) from voucher_p1 where ENCPIN in ( select ENCPIN from voucher_p1 where ri=' || vori.ri || ')'
        EXECUTE immediate sql_stmt into n;
        DBMS_OUTPUT.PUT_LINE( 'Column Variable: ' || n );
    END LOOP;
    end;
    /

Я запускаю его в Oracle 9.2.0, и он возвращает это сообщение, как показано ниже:

EXECUTE immediate sql_stmt into n;
*
ERROR at line 5:
ORA-06550: line 5, column 1:
PLS-00103: Encountered the symbol "EXECUTE" when expecting one of the
following:
. ( * @ % & = - + ; < / > at in is mod not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like
between ||

1 Ответ

0 голосов
/ 24 сентября 2019

я бегу хорошо.спасибо всем.

SET SERVEROUTPUT ON;
declare 
sql_stmt varchar2(500);
n number(3);
begin
FOR vori IN (select ri from voucher_p1 where vchstate=chr(4))
LOOP
    DBMS_OUTPUT.PUT_LINE('select count(*) from voucher_p1 where ENCPIN in ( select ENCPIN from voucher_p1 where ri=' || vori.ri || ')');
    sql_stmt := 'select count(*) from voucher_p1 where ENCPIN in ( select ENCPIN from voucher_p1 where ri=' || vori.ri || ')';
    EXECUTE immediate sql_stmt into n;
    DBMS_OUTPUT.PUT_LINE(n);
END LOOP;
end;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...