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 originalINSERT INTO tabla_a (a,b,c,d)
SELECT tabla_b.a AS a,
tabla_b.b AS b,
tabla_b.c AS c,
'0' AS d
FROM tabla_b;
Por lo que se podría adaptar al procedimiento utilizando algo parecido a:
Código SQL:
Ver originalINSERT INTO WEBCATEGORIAMAP (PCO_CATEGORIA,co_categoria_sap)
SELECT PCO_CATEGORIA,
co_categoria_sap
FROM webcategoriasap
WHERE co_categoria_sap LIKE PCO_CATEGORIA_SAP||'%';
Tiene un problema si existen muchos registros, aunque es bastante eficiente.
Un saludo