我使用已声明的变量EFFDT (10)创建了DB2-400存储过程。应该将此变量的值传递给同一存储过程中的SQL语句。这个过程编译得很好,但是当我执行这个过程时,我得到
SQL-0206错误“列或全局变量@EFFDT未找到”。
以下是代码:
BEGIN
-- Variable used to replace effective in SQL below with 1st
-- day of current month as text in 'MM/DD/YYYY' format
DECLARE EFFDT VARCHAR(10);
SET EFFDT = VARCHAR_FORMAT(MONTH(CURRENT DATE) || '/01/' || YEAR(CURRENT DATE),'MM/DD/YYYY') ; -- First day of current month
...
--SQL STATEMENT
CREATE TABLE INFOMATICS.TEMP_CHGS_2_ADDS AS
(SELECT FNAME, MI, LNAME, MAILING_ZIP,
SPECLTY, SPECLTY_DESC, @EFFDT AS EFF_DATE
FROM INFOMATICS.TEMP_CHGS) WITH DATA;
...
End;我希望能看到
John M Smith 1111 GD General Dentist 05/01/2019发布于 2019-05-30 21:32:30
@EFFDT似乎既没有定义为一个声明,也没有定义为一个参数。不过,我知道您在哪里声明EFFDT。也许可以尝试将@EFFDT改为EFFDT。
发布于 2019-06-02 01:13:11
最后我没有使用这个变量。相反,我编写了一个SQL语句,将生效日期(EFF_DATE)修改为当前月份的第一天。以下是SQL语句: UPDATE INFOMATICS.TEMP_CHGS SET EFF_DATE =VARCHAR_FORMAT(月份(当前日期)欧元/01/‘财政年度(当前日期),’MM/DD/YYYY‘);
返回的EFF_DATE值与预期的‘05/01/2019’相同。
https://stackoverflow.com/questions/56368587
复制相似问题