首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

DB2 for 循环回来的变量都是空的,求大神帮忙看看

2013-07-04 
DB2 for 循环返回的变量都是空的,求大神帮忙看看循环脚本 BEGIN ATOMIC DECLARE V_ODS_COL_LIST VARCHAR(3

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='';

热点排行