【发布时间】:2018-01-04 06:37:43
【问题描述】:
我正在尝试使用动态 SQL 查询执行存储过程。我终于让它编译了,但它返回以下错误:
ORA-00936 - 缺少表达式
我哪里做错了?
包装规格:
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE RADNIK
(
P_ID_OC_NAJVISA IN RADNIK.ID_NAJVISA_OC%TYPE, --1
P_IME_PREZIME IN RADNIK.IME%TYPE, --2
REF_TABELA IN VARCHAR2, --3
P_ID_OPERATER IN Z_TRANSAKCIJA.ID_OPERATER%TYPE,
P_CURSOR OUT T_CURSOR
);
包体:
PROCEDURE RADNIK
(
P_ID_OC_NAJVISA IN RADNIK.ID_NAJVISA_OC%TYPE,
P_IME_PREZIME IN RADNIK.IME%TYPE,
REF_TABELA IN VARCHAR2,
P_ID_OPERATER IN Z_TRANSAKCIJA.ID_OPERATER%TYPE,
P_CURSOR OUT T_CURSOR
)
IS
radnikRed RADNIK%ROWTYPE;
BEGIN
OPEN P_CURSOR FOR
'SELECT *
FROM (SELECT DISTINCT
R.ID_RADNIK,
R.PREZIME || '' ('' || R.IME_RODITELJA || '') '' || R.IME || '', '' || R.LICNI_BROJ
IME_PREZIME
FROM RADNIK R,
(
SELECT DISTINCT RT.ID_RADNIK FROM '||REF_TABELA||' RT WHERE RT.ID_OC_NAJVISA='||P_ID_OC_NAJVISA||') RT
WHERE
(R.ID_NAJVISA_OC = '||P_ID_OC_NAJVISA||' and R.STORNO=''N'') OR R.ID_RADNIK=RT.ID_RADNIK)
WHERE IME_PREZIME LIKE ''%'' || '||P_IME_PREZIME||' || ''%''
OR '||P_IME_PREZIME||' IS NULL';
LOOP
FETCH P_CURSOR INTO radnikRed;
END LOOP;
CLOSE P_CURSOR;
END RADNIK;
【问题讨论】:
标签: oracle plsql cursor dynamic-sql