i am getting STATEMENT_ERROR after exicution stored procedure
i am trying to insert json data into my snowflake table
CREATE SEQUENCE order_id_seq –START = 0 INCREMENT = 1;
CREATE TABLE orders (
order_id NUMBER default order_id_seq.nextval,
customer_id VARCHAR(10),
order_date DATE,
total_amount FLOAT,
PRIMARY KEY (order_id)
);
— Create the product table
CREATE TABLE products (
order_id NUMBER ,
name VARCHAR(100),
quantity INT,
unit_price FLOAT
);
CREATE OR REPLACE PROCEDURE insert_order_and_products(json_data VARIANT)
RETURNS STRING
LANGUAGE SQL
AS
$$
DECLARE
order_id INTEGER;
BEGIN
— Step 1: Insert data into the orders table
INSERT INTO orders (customer_id, order_date, total_amount)
SELECT
json_data:customer_id::VARCHAR(50) AS customer_id,
TO_DATE(json_data:order_date::VARCHAR, ‘YYYY-MM-DD’) AS order_date,
json_data:total_amount::FLOAT AS total_amount;
-- Step 2: Get the order_id of the recently inserted order
order_id := LAST_INSERT_ID();
-- Step 3: Insert data into the products table
INSERT INTO products (order_id, product_name, quantity, unit_price)
SELECT
order_id AS order_id,
product.value:name::VARCHAR(50) AS product_name,
product.value:quantity::INTEGER AS quantity,
product.value:unit_price::FLOAT AS unit_price
FROM
(SELECT FLATTEN(json_data:products)) AS product;
RETURN 'Data inserted successfully.';
END;
$$;
CALL insert_order_and_products(parse_json(‘{
“customer_id”: “C001”,
“order_date”: “2024-04-26”,
“total_amount”: 100.50,
“products”: [
{
“name”: “Product A”,
“quantity”: 2,
“unit_price”: 25.25
},
{
“name”: “Product B”,
“quantity”: 1,
“unit_price”: 50.00
}
]
}’));