Как я могу преобразовать 'a, b, c' как 'a', 'b', 'c' с помощью plsql, потому что в моей процедуре мне нужно сделать " где "использую" in "но я не могу передать 'a', 'b', 'c' когда я вызываю мою процедуру
Моя процедура ниже
CREATE OR REPLACE PACKAGE BODY G_JSON_RAW AS
FUNCTION GET_IMS_DATA(P_FECHA_DESDE IN VARCHAR2,
P_FECHA_HASTA IN VARCHAR2,
P_CLASE IN VARCHAR2,
P_NOMBRE_PROYECTO IN VARCHAR2)
RETURN NOKIA_JSON_RAW_TAB PIPELINED IS
BEGIN
FOR DATO IN (
SELECT /*+ MATERIALIZE PARALLEL(NOKIA_IMS_JSON_RAW,2) */
RT.NOMBRE_PROYECTO,JT.TIPO_JS,JT.FECHA_JS,JT.REGIONAL,JT.INTERVALO,JT.ELEMENTO_1,
JT.ELEMENTO_2,JT.CLAVE,JT.VALOR,JT.REFERENTE
FROM
NOKIA_IMS_JSON_RAW RT,
JSON_TABLE(DOCUMENTO FORMAT JSON,'$'
COLUMNS
TIPO_JS VARCHAR2(19 CHAR) PATH '$.tipo',
FECHA_JS VARCHAR2(100 CHAR) PATH '$.fecha',
REGIONAL VARCHAR2(5 CHAR) PATH '$.regional',
INTERVALO NUMBER PATH '$.intervalo',
ELEMENTO_1 VARCHAR2(500 CHAR)PATH '$.elemento_1',
ELEMENTO_2 VARCHAR2(500 CHAR)PATH '$.elemento_2',
NESTED PATH '$.referencias[*]'
COLUMNS(
NESTED PATH '$.datos[*]'
COLUMNS(
CLAVE VARCHAR2(32)PATH '$.clave',
VALOR VARCHAR2(32)PATH '$.valor'
),
REFERENTE VARCHAR2(100)PATH '$.referente'
)
)
JT
WHERE CLASE IN (SELECT * FROM sys.dbms_debug_vc2coll(P_CLASE))
AND NOMBRE_PROYECTO = P_NOMBRE_PROYECTO
AND FECHA BETWEEN TO_DATE(P_FECHA_DESDE,'DD.MM.YYYY HH24')
AND TO_DATE(P_FECHA_HASTA,'DD.MM.YYYY HH24') + 3599/86400) LOOP
PIPE ROW(NOKIA_JSON_RAW_REC(NOMBRE_PROYECTO => DATO.NOMBRE_PROYECTO,
TIPO => DATO.TIPO_JS,
FECHA => DATO.FECHA_JS,
REGIONAL => DATO.REGIONAL,
INTERVALO => DATO.INTERVALO,
ELEMENTO_1 => DATO.ELEMENTO_1,
ELEMENTO_2 => DATO.ELEMENTO_2,
CLAVE => DATO.CLAVE,
VALOR => DATO.VALOR,
REFERENTE => DATO.REFERENTE));
END LOOP;
RETURN;
END GET_IMS_DATA;
--**--**--**--**--
FUNCTION GET_IMS_DATA_RAW(P_FECHA_DESDE IN VARCHAR2,
P_FECHA_HASTA IN VARCHAR2,
P_CLASE IN VARCHAR2,
P_NOMBRE_PROYECTO IN VARCHAR2,
P_INTERVALO IN NUMBER,
P_MEDICION IN VARCHAR2)
RETURN NOKIA_JSON_RAW_TAB PIPELINED IS
--
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT = ''DD.MM.YYYY HH24:MI:SS''';
--
FOR DATO IN (SELECT /*+ MATERIALIZE PARALLEL(2) */
NOMBRE_PROYECTO,TIPO,FECHA,REGIONAL,INTERVALO,ELEMENTO_1,ELEMENTO_2,CLAVE,VALOR,REFERENTE
FROM GET_IMS_DATA(P_FECHA_DESDE,P_FECHA_HASTA,P_CLASE,P_NOMBRE_PROYECTO)
WHERE REFERENTE IN(SELECT * FROM sys.dbms_debug_vc2coll(P_MEDICION))
AND INTERVALO = P_INTERVALO
) LOOP
PIPE ROW(NOKIA_JSON_RAW_REC(NOMBRE_PROYECTO => DATO.NOMBRE_PROYECTO,
TIPO => DATO.TIPO,
FECHA => DATO.FECHA,
REGIONAL => DATO.REGIONAL,
INTERVALO => DATO.INTERVALO,
ELEMENTO_1 => DATO.ELEMENTO_1,
ELEMENTO_2 => DATO.ELEMENTO_2,
CLAVE => DATO.CLAVE,
VALOR => DATO.VALOR,
REFERENTE => DATO.REFERENTE));
END LOOP;
RETURN;
EXCEPTION
WHEN NO_DATA_NEEDED THEN NULL;
WHEN OTHERS THEN
G_ERROR_LOG_NEW.P_LOG_ERROR('G_JSON_RAW.GET_IMS_DATA_RAW',
SQLCODE,
SQLERRM,
'P_FECHA_DESDE => ' ||P_FECHA_DESDE||
' P_FECHA_HASTA => ' ||P_FECHA_HASTA||
' P_CLASE => ' ||P_CLASE||
' P_NOMBRE_PROYECTO => '||P_NOMBRE_PROYECTO);
END GET_IMS_DATA_RAW;
END G_JSON_RAW;