You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teradata存储过程参数日期格式配置部署报错求助

Teradata存储过程参数配置错误排查及修正

错误原因

Teradata SPL(存储过程语言)不支持在存储过程的参数声明中直接指定DATE FORMAT。你在LV_EFFECTIVE_START_DT和LV_EFFECTIVE_END_DT参数后添加的FORMAT 'YYYY-MM-DD'属于非法语法,导致解析器无法正确识别参数列表的结束位置,从而抛出SPL1076(缺少右括号)和SPL1048(意外分号)的错误。

修正方案

  1. 移除参数声明中的格式指定:参数类型仅保留DATE,去掉FORMAT 'YYYY-MM-DD'。
  2. 日期格式控制方式:
    • 调用存储过程时,确保传入的日期值符合Teradata默认的日期格式(通常为YYYY-MM-DD,与你指定的格式一致,无需额外转换);
    • 如果需要接收特定格式的字符串参数,可将参数类型改为VARCHAR,在存储过程内部通过TO_DATE函数转换为DATE类型,例如:TO_DATE(LV_EFFECTIVE_START_DT_STR, 'YYYY-MM-DD')。

修正后的存储过程参数声明代码

REPLACE PROCEDURE UDMTOOL_STG_USER.TDPRC_SALES_ESL_INSERT_GLOBAL_APPLE_BRAND_QUERIES 
(
    IN  LV_COUNTRY_CD               VARCHAR(100),
    IN  LV_SEARCHED_KEYWORD_VAL     VARCHAR(300) CHARACTER SET UNICODE,
    IN  LV_SEARCHED_KEYWORD_VAL_ENG VARCHAR(300),
    IN  LV_EFFECTIVE_START_DT       DATE,
    IN  LV_EFFECTIVE_END_DT         DATE, 
    IN  LV_BRAND_NAME               VARCHAR(100),
    IN  LV_INSERT_TS                VARCHAR(19),
    IN  LV_UPDATED_ON               VARCHAR(19),
    IN  LV_UPDATED_BY               VARCHAR(100),
    IN  LN_REQUEST_ID               INTEGER,
    OUT LV_OUT_STATUS               VARCHAR(100) 
)
-- 后续的存储过程逻辑代码
BEGIN
    -- 这里编写你的存储过程执行逻辑
    SET LV_OUT_STATUS = 'SUCCESS';
END;

内容的提问来源于stack exchange,提问作者Anjaneyulu Godduvelagala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:07:12