提问人:MaxenceS 提问时间:5/17/2023 更新时间:5/17/2023 访问量:297
SNowflake - 语法错误:意外的“<EOF>”。查询大小限制?
SNowflake - Syntax error: unexpected '<EOF>'. Query size limit?
问:
我有一个程序,我想修改它。当我使用此请求时:
CREATE OR REPLACE PROCEDURE import_stage_sfr_ac_reeng_fixe_handicall_bordeaux(p_loading_mode VARCHAR)
RETURNS VARCHAR NOT NULL
LANGUAGE SQL
AS
BEGIN
IF (:p_loading_mode ='incremental') THEN
COPY INTO SFR_AC_REENG_FIXE_HANDICALL_BORDEAUX (
V_NUM_COMMANDE_MIG,
V_SITE_CMD,
V_ACTIVITE_EZY,
V_TYPE_AC,
D_JOUR_CMD,
D_JOUR_PANIER,
V_SEMAINE_CMD,
V_MOIS_CMD,
V_LOGIN_CC_CMD,
V_NUM_CONTRAT,
V_TYPE_ACTE,
B_MIG,
V_COURANT_PTA_MIG,
V_LIBL_COURANT_PTA_MIG,
V_FUTUR_PTA_MIG,
V_LIBL_FUTUR_PTA_MIG,
V_LIBL_FUTUR_PTA_MIG_COURT,
B_REMISE,
V_LIBL_REMISE,
N_MT_REMISE_M_TTC,
B_USAGE,
V_LIBL_USAGE,
V_NOM,
V_PRENOM,
N_FACIAL_AVANT,
N_FACIAL_APRES,
N_REMISE_AVANT,
N_REMISE_APRES,
N_MOUVEMENT_VALEUR,
V_CODE_CAMPAGNE,
B_FLAG_HBD,
V_CODE_CAMPAGNE,
V_CODE_LOT,
V_RAC,
V_TECH_NOM_FICHIER,
V_TECH_STATUT_TRAITEMENT,
V_TECH_NOM_TRAITEMENT,
TS_TECH_DEBUT_TRAITEMENT
) FROM (
SELECT
$12,
$1,
$2,
$3,
TO_DATE($4, 'YYYY-MM-DD'),
TO_DATE($5, 'YYYY-MM-DD'),
$6,
$7,
$8,
$9,
$10,
CAST($11 AS BOOLEAN),
$13,
$14,
$15,
$16,
$17,
CAST($18 AS BOOLEAN),
$19,
CAST($20 AS NUMBER(10, 0)),
CAST($21 AS BOOLEAN),
$22,
$23,
$24,
CAST(REPLACE($25, ',', '.') AS NUMBER(6, 3)),
CAST(REPLACE($26, ',', '.') AS NUMBER(6, 3)),
CAST(REPLACE($27, ',', '.') AS NUMBER(4, 2)),
CAST(REPLACE($28, ',', '.') AS NUMBER(4, 2)),
CAST(REPLACE($29, ',', '.') AS NUMBER(6, 3)),
$30,
TO_BOOLEAN($31),
$32,
$33,
$34,
METADATA$FILENAME,
'I',
'INGEST MODE : '|| :p_loading_mode,
current_timestamp(0)
FROM @ES_SFR )
FILE_FORMAT = ( FORMAT_NAME = FF_INGEST_CSV_SFR)
PATTERN = '.*incremental.*ac_reeng_fixe_handicall_bordeaux.*\.csv';
END IF;
它有效。但是,如果我只添加一列,无论列如何,我都会收到消息。Syntax error: unexpected '<EOF>'.
例:
CREATE OR REPLACE PROCEDURE import_stage_sfr_ac_reeng_fixe_handicall_bordeaux(p_loading_mode VARCHAR)
RETURNS VARCHAR NOT NULL
LANGUAGE SQL
AS
BEGIN
IF (:p_loading_mode ='incremental') THEN
COPY INTO SFR_AC_REENG_FIXE_HANDICALL_BORDEAUX (
V_NUM_COMMANDE_MIG,
V_SITE_CMD,
V_ACTIVITE_EZY,
V_TYPE_AC,
D_JOUR_CMD,
D_JOUR_PANIER,
V_SEMAINE_CMD,
V_MOIS_CMD,
V_LOGIN_CC_CMD,
V_NUM_CONTRAT,
V_TYPE_ACTE,
B_MIG,
V_COURANT_PTA_MIG,
V_LIBL_COURANT_PTA_MIG,
V_FUTUR_PTA_MIG,
V_LIBL_FUTUR_PTA_MIG,
V_LIBL_FUTUR_PTA_MIG_COURT,
B_REMISE,
V_LIBL_REMISE,
N_MT_REMISE_M_TTC,
B_USAGE,
V_LIBL_USAGE,
V_NOM,
V_PRENOM,
N_FACIAL_AVANT,
N_FACIAL_APRES,
N_REMISE_AVANT,
N_REMISE_APRES,
N_MOUVEMENT_VALEUR,
V_CODE_CAMPAGNE,
B_FLAG_HBD,
V_CODE_CAMPAGNE,
V_CODE_LOT,
V_RAC,
V_PROMO_TR,
V_TECH_NOM_FICHIER,
V_TECH_STATUT_TRAITEMENT,
V_TECH_NOM_TRAITEMENT,
TS_TECH_DEBUT_TRAITEMENT
) FROM (
SELECT
$12,
$1,
$2,
$3,
TO_DATE($4, 'YYYY-MM-DD'),
TO_DATE($5, 'YYYY-MM-DD'),
$6,
$7,
$8,
$9,
$10,
CAST($11 AS BOOLEAN),
$13,
$14,
$15,
$16,
$17,
CAST($18 AS BOOLEAN),
$19,
CAST($20 AS NUMBER(10, 0)),
CAST($21 AS BOOLEAN),
$22,
$23,
$24,
CAST(REPLACE($25, ',', '.') AS NUMBER(6, 3)),
CAST(REPLACE($26, ',', '.') AS NUMBER(6, 3)),
CAST(REPLACE($27, ',', '.') AS NUMBER(4, 2)),
CAST(REPLACE($28, ',', '.') AS NUMBER(4, 2)),
CAST(REPLACE($29, ',', '.') AS NUMBER(6, 3)),
$30,
TO_BOOLEAN($31),
$32,
$33,
$34,
$35,
METADATA$FILENAME,
'I',
'INGEST MODE : '|| :p_loading_mode,
current_timestamp(0)
FROM @ES_SFR )
FILE_FORMAT = ( FORMAT_NAME = FF_INGEST_CSV_SFR)
PATTERN = '.*incremental.*ac_reeng_fixe_handicall_bordeaux.*\.csv';
END IF;
我从今天早上开始搜索,我能够通过删除评论来添加更多列。因此,我真的想知道这是否不是对过程中字符数的限制。有什么想法吗?
谢谢
答:
1赞
Alexander Klimenko
5/17/2023
#1
要解决此问题,您需要添加 sings 来引用代码块。$$
例:
CREATE OR REPLACE PROCEDURE import_stage_sfr_ac_reeng_fixe_handicall_bordeaux(p_loading_mode VARCHAR)
RETURNS VARCHAR NOT NULL
LANGUAGE SQL
AS
$$
BEGIN
--your code the scripting block
END
$$;
上一个:EOF 函数在 C 中的正确用法
下一个:什么是EOF的阻止行为
评论
Function IMPORT_STAGE_SFR_AC_REENG_FIXE_HANDICALL_BORDEAUX successfully created
$$
BEGIN
END