У меня есть небольшая проблема с этим, желаю, чтобы кто-то мог помочь.
У меня есть эта хранимая процедура:
CREATE OR REPLACE PROCEDURE FILTER_COPY(
vOrigen IN VARCHAR2,
sListadoClientes__ OUT SYS_REFCURSOR
)
IS
vParam VARCHAR2(10);
vQuery_final VARCHAR2(2500);
BEGIN
DECLARE BEGIN
FOR i IN
(SELECT regexp_substr(vOrigen ,'[^,]+', 1, level) AS params FROM dual
CONNECT BY regexp_substr(vOrigen, '[^,]+', 1, level) IS NOT NULL)
LOOP
vParam := i.params;
END LOOP;
CASE (vOrigen)
WHEN 'CALLCENTER' THEN vQuery_final:= 'SELECT IDCALL as indice, NOMBRE as nombre FROM CALL ORDER BY 1';
WHEN 'PAIS' THEN vQuery_final:= 'SELECT CODE as indice, NAME as nombre FROM PAIS WHERE CODE IN ('''|| 'CAN' ||''',''' || 'USA' ||''') ORDER BY 1';
WHEN 'HOTEL' THEN vQuery_final:= 'SELECT HOTEL_ID as indice,NOMBRE as nombre FROM HOTEL WHERE TIPO = '' || ROYAL || '' ORDER BY 1';
WHEN 'NOTA' THEN vQuery_final:= 'SELECT IDNOTA as indice, TIPONOTA as nombre FROM NOTAS ORDER BY 1';
WHEN 'DEPARTAMENTO' THEN vQuery_final:= 'SELECT IDDEPTO as indice, DEPTO as nombre FROM DEPATRAMENTO WHERE MESSAGE = 1 ORDER BY 1';
END CASE;
-- query_final:='SELECT DUMMY FROM DUAL';
OPEN sListadoClientes__ FOR vQuery_final;
--select vParam as CLIENT from dual;
END;
END;
Моя проблема в том, что я не знаю, как справиться, когдапараметр IN "vOrigen" - это всего лишь регистр, или если это два параметра, которые мне нужно разделить, чтобы выполнить, источник этой хранимой процедуры находится в случае "HOTEL", потому что мне нужно получить ORIGIN для завершения оператора select.
Спасибо за ваше время.