我正在嘗試查詢特定日期范圍的資料庫表。當日期被硬編碼時,查詢沒有任何問題,但是,當我嘗試使用變數時,Snowflake 回傳錯誤訊息“”,沒有其他資訊。
我嘗試過使用 Date、DateTime、DateTimeLTZ、Varchar 資料型別,但到目前為止沒有任何效果。Snowflake 錯誤訊息不如 SQL Server 或 Oracle 友好,檔案也沒有提供太多幫助。
這是復制問題的示例代碼,非常感謝任何幫助或指導
/*
-- Set up necessary tables
CREATE OR REPLACE TABLE CHARGE_F (charge_item_id int, updt_dt_tm timestampltz);
INSERT INTO charge_f values (1, '2022-09-01');
INSERT INTO charge_f values(2, '2022-09-05');
INSERT INTO charge_f values(3, '2022-09-10');
SELECT * FROM charge_f
CREATE OR REPLACE TABLE TMP_CHARGEITEMID_LIST (Idx integer IDENTITY(1, 1), charge_item_id integer) ;
*/
EXECUTE IMMEDIATE
$$
DECLARE
start_dt_tm datetime ;
end_dt_tm datetime ;
BEGIN
start_dt_tm := '2022-09-01' ;
end_dt_tm := dateadd(week, 1, start_dt_tm) ;
-- Works without a problem
INSERT INTO TMP_CHARGEITEMID_LIST (charge_item_id)
SELECT charge_item_id FROM CHARGE_F c WHERE c.UPDT_DT_TM BETWEEN '2022-09-01' AND '2022-09-08' ;
/* -- Causes <redacted> error
INSERT INTO TMP_CHARGEITEMID_LIST (charge_item_id)
SELECT charge_item_id FROM CHARGE_F c WHERE c.UPDT_DT_TM BETWEEN start_dt_tm And end_dt_tm ;
*/
RETURN start_dt_tm ;
END ;
$$
uj5u.com熱心網友回復:
要在這種情況下使用變數,它應該加上前綴,:
并記錄在
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/507687.html