Oracle - Cadena de caracteres a tabla Ayuda

 
Vista:

Cadena de caracteres a tabla Ayuda

Publicado por Adalllo (1 intervención) el 14/11/2016 13:05:29
Buenas, mi problema es:

Quiero que se introduzca como parámetro una serie de cadenas separadas por "coma" y que se inserte en una tabla.

Después de ver muchos foros he realizado esto pero no me funciona.
La tabla donde se introducen los datos ya esta creada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ACCEPT P_ID_EM PROMPT "Indique el Id de la Empresa: " DEFAULT 1;
 
ACCEPT P_ID_COD_USUARIO_BI PROMPT "Indique los Codigos de Usuarios, separados por comas, utilizar en la empresa parametrizado: " ;
 
 
DECLARE
  --
  V_ID_EMPRESA      INTEGER       := &P_ID_EM;
  V_COD_USUARIO     varchar2(50)  := '&P_ID_COD_USUARIO_BI'  ;
  with t as (select V_COD_USUARIO as txt from dual);
  CURSOR C_USUARIO IS select REGEXP_SUBSTR (txt, '[^,]+', 1, level) USUARIO
  from t
  connect by level <= length(regexp_replace(txt,'[^,]*'))+1;
  i NUMBER:= 0;
  --
BEGIN
 
  FOR V_USUARIO IN C_USUARIO LOOP
   INSERT INTO BI_T (COD_EM, COD_USUARIO)
  VALUES (V_ID_EM, C_USUARIO.USUARIO);
  i:= i+1;
--
  END LOOP;
END;
/

Solución deseada:
Introducir por teclado : US1,US2,US3,US4,....

tabla intruducida

1
2
3
4
5
6
7
COD_EM    COD_USUARIO
--------------------------------------
1                    US1
1                    US2
1                    US3
1                    US4
..............................
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder