GOOGLE ADS

jueves, 14 de abril de 2022

Cursor y procedimiento SQL de copo de nieve

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

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...