Estoy trabajando en un procedimiento SQL para leer datos del cursor e insertarlos en la tabla. ¿Cómo hago referencia a los valores del cursor en la declaración de inserción?
A continuación se muestra lo que he intentado:
CREATE OR REPLACE PROCEDURE SP_FACT_SALES()
returns varchar(100)
LANGUAGE SQL
EXECUTE AS OWNER
AS '
declare
INVOICE_NUMBER varchar(15);
CUSTOMER VARCHAR(20);
AMOUNT NUMBER(17,2);
c1 cursor for select INVOICE_NUMBER,CUSTOMER,AMOUNT from db.schema.v_fact_sales limit 3;
begin
open c1;
fetch c1 into INVOICE_NUMBER,CUSTOMER,AMOUNT;
insert into db.schema.fact_sales(INVOICE_NUMBER,CUSTOMER,AMOUNT)
values(c1.INVOICE_NUMBER,c1.CUSTOMER,c1.AMOUNT)
end;
';
Recibo el siguiente error:
Uncaught exception of type 'STATEMENT_ERROR' on line 14 at position 1: SQL compilation error: error line 2 at position 11 invalid identifier 'C1.INVOICE_NUMBER'
¿Tengo que hacer un bucle FOR para hacer referencia a los valores del cursor o hay alguna forma de recopilar en masa (similar a Oracle)
¡Cualquier ayuda sería apreciada!
Solución del problema
Debe usar un bucle FOR para recorrer el cursor: https://docs.snowflake.com/en/sql-reference/snowflake-scripting/for.html
No hay comentarios.:
Publicar un comentario