Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/07/2013, 16:27
Avatar de zarwar
zarwar
 
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: insert con select en pl sql

Quizas pueda ayudar un poco.

Enntiendo que te compila, ya que te da un error al ejecutar el procedimiento y no al compilar.

Por otro lado como bien indica gnzsoloyo, la inserción con la sintaxis, que indicas intenta insertar un registro, pero el segundo campo de los valores devuelve mas de un valor y por eso no se lo traga.

En Oracle también existe el INSERT INTO .. SELECT con la siguiente sintaxis. Fijate, que no está el termino "VALUES":
Código SQL:
Ver original
  1. INSERT INTO tabla_a (a,b,c,d)
  2.      SELECT        tabla_b.a AS a,
  3.             tabla_b.b AS b,
  4.             tabla_b.c AS c,
  5.             '0' AS d
  6.         FROM tabla_b;

Por lo que se podría adaptar al procedimiento utilizando algo parecido a:
Código SQL:
Ver original
  1. INSERT INTO WEBCATEGORIAMAP (PCO_CATEGORIA,co_categoria_sap)
  2.    SELECT PCO_CATEGORIA,
  3.           co_categoria_sap
  4.      FROM webcategoriasap
  5.     WHERE co_categoria_sap LIKE PCO_CATEGORIA_SAP||'%';

Tiene un problema si existen muchos registros, aunque es bastante eficiente.

Un saludo
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es