Ошибки в процедуре PLS-00403, ORA-00904 и PLS-00363
При компилировании процедуры выдаёт ошибки PLS-00403, ORA-00904 и PLS-00363, вот код:
CREATE OR REPLACE PROCEDURE KOMAND.TEST_REPORT3 (cols IN varchar2,SQLQRY IN
varchar2) IS
BEGIN
select listagg('''' || slugba || ''' "' || slugba || '"', ',') within group
(order by slugba)
into cols
from (select distinct k.text as slugba from KOMAND T, (select
* from sprav k1 where k1.nomer = '7301') k where t.slugba = K.kod
group by t.mesto_go, k.text);
SQLQRY := 'select * from (
select * from (
select t.mesto_go, k.text as slugba, count(*) as cnt from
KOMAND T, (select * from sprav k1 where k1.nomer =
7301) k
where t.slugba = K.kod
group by t.mesto_go, k.text
)
)
pivot (
sum(CNT) for slugba in (' || cols || ')
)';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END TEST_REPORT3;
До отпуска процедура работала, потом что-то правил, но что именно не помню.
> PLS-00403: выражение 'COLS' нельзя использовать как INTO-адресат в
> операторе SELECT/FETCH PL/SQL:
> ORA-00904: : недопустимый идентификатор
> PLS-00363: выражение 'SQLQRY' не может быть использовано как адресат
> назначения
Пробовал менять типы переменных и задавать размеры, выполнять код не из процедуры но результат null. Работаю в Toad, Oracle 11