Q: Oracle: [Ошибка] PLS-00103 (13: 29): PLS-00103: Обнаружен символ "CROLE" при ожидании одного из следующего: (

Я хочу спросить еще раз о моей процедуре, это пример:

первый,

CREATE OR REPLACE procedure proc10(pnik in varchar2, pposition in varchar2)
IS
v_error_message varchar2(255);
CURSOR cuser IS
    SELECT userid FROM mstuser WHERE nik =  pnik; 
CURSOR crole IS
    SELECT distinct role FROM mstrole;
BEGIN
    FOR cdata IN cuser
    LOOP
        BEGIN
            IF pposition IN crole THEN
                BEGIN
                    .........
                END;
            END IF;
        END;
    END LOOP;
END;

и это имеет ошибку как это:

[Error] PLS-00405 (11: 29): PLS-00405: subquery not allowed in this context

Затем я помещаю подзапрос в курсор следующим образом:

CREATE OR REPLACE procedure proc10(pnik in varchar2, pposition in varchar2)
IS
v_error_message varchar2(255);
CURSOR cuser IS
    SELECT userid FROM mstuser WHERE nik =  pnik; 
CURSOR crole IS
    SELECT distinct role FROM mstrole;
BEGIN
    FOR cdata IN cuser
    LOOP
        BEGIN
            IF pposition IN crole THEN
                BEGIN
                    .........
                END;
            END IF;
        END;
    END LOOP;
END;

но когда я выполняю эту процедуру, она имеет такую ​​ошибку:

[Error] PLS-00103 (13: 29): PLS-00103: Encountered the symbol "CROLE" when expecting one of the following:  (

и я поставил скобки на "CROLE" (совет от @PM 77-1) следующим образом:

CREATE OR REPLACE procedure proc10(pnik in varchar2, pposition in varchar2)
IS
v_error_message varchar2(255);
CURSOR cuser IS
    SELECT userid FROM mstuser WHERE nik =  pnik; 
CURSOR crole IS
    SELECT distinct role FROM mstrole;
BEGIN
    FOR cdata IN cuser
    LOOP
        BEGIN
            IF pposition IN (crole) THEN
                BEGIN
                    .........
                END;
            END IF;
        END;
    END LOOP;
END;

и это имеет новую ошибку, как это:

[Error] PLS-00320 (13: 30): PLS-00320: the declaration of the type of this expression is incomplete or malformed

что я должен сделать, чтобы это исправить? Пожалуйста, помогите спасибо, прежде чем.

0 ответов

Другие вопросы по тегам