DB2 for 循环返回的变量都是空的,求大神帮忙看看
循环脚本
BEGIN ATOMIC
DECLARE V_ODS_COL_LIST VARCHAR(300);
FOR C_DW_TABLE_FIELD AS
SELECT COLNAME ,
CASE
WHEN TYPENAME LIKE '%CHAR%' THEN 1
ELSE 0
END AS TRIM_FLAG
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA='CTMPODS'
AND TABNAME = 'SLAUGHTER_BASE_INFO'
ORDER BY COLNO
DO
SET V_ODS_COL_LIST = V_ODS_COL_LIST || ',' || C_DW_TABLE_FIELD.COLNAME;
INSERT INTO TEMP_LXH VALUES(V_ODS_COL_LIST);
END FOR;
END
----------------------------------
其中
SELECT COLNAME ,
CASE
WHEN TYPENAME LIKE '%CHAR%' THEN 1
ELSE 0
END AS TRIM_FLAG
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA='CTMPODS'
AND TABNAME = 'SLAUGHTER_BASE_INFO'
ORDER BY COLNO
查询出来的结果 是
COLNAME TRIM_FLAG
'COMP_ID'1
'COMP_NAME'1
'REG_ID'1
'AREA_ID'1
'RECORD_DATE'0
'LEGAL_REPRESENT'1
'ADDR'1
'TEL'1
'FAX'1
'AREA_NAME'1
'SUM_DATE'0
----------------------------------
我想通过这个循环 把这个表的字段 通过,号连接起来
生成COMP_ID,COMP_NAME,REG_ID,AREA_ID,RECORD_DATE,LEGAL_REPRESENT,ADDR,TEL,FAX,AREA_NAME,SUM_DATE
这样的字符窜。
把每次循环的结果 插入到TEMP_LXH 表中。
但是我运行的结果 在TEMP_LXH 表中全是
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
'[Null]'
刚刚开始学写DB2脚本,
请教大神 这个是怎么回事? DB2 脚本
[解决办法]
declare v_ods_col_list varchar(300);
SET v_ods_col_list=''; ----声明后 赋值
[解决办法]
V_ODS_COL_LIST没有赋值,默认为NULL
SET V_ODS_COL_LIST='';