for t in (select F_DATACODE as code ,F_TOTALNUM
from t_er_organsum
where F_REPORTID = ReportID
and F_DATACODE in ('101', '1011', '1012', '102', '1021', '103',
'1031', '1032', '1033', '1034', '1035')) loop
if (t.F_TOTALNUM is not null and t.code is not NULL) then
strSql := strSql || ',F_NUM' || t.code;
strValue := strValue || ',' || t.f_totalnum;
end if;
end loop;
测试的时候发现code的值一直是NULL自己查找了结果发现F_DATACODE 都不为空,还有一个很奇怪的t.code is not NULL这个判断没效果,if里面的都会执行,换成t.code!=NULL就不判断效果。我还尝试过将t_er_organsum其他列值赋值给code有值不过测试的时候发现中文有乱码显现。他们都没说出为什么不可以,叫我换成游标。我很想确认下这样写是否可以。问题出在那里?很急,麻烦办法看看
from t_er_organsum
where F_REPORTID = ReportID
and F_DATACODE in ('101', '1011', '1012', '102', '1021', '103',
'1031', '1032', '1033', '1034', '1035')) loop
if (t.F_TOTALNUM is not null and t.code is not NULL) then
strSql := strSql || ',F_NUM' || t.code;
strValue := strValue || ',' || t.f_totalnum;
end if;
end loop;
测试的时候发现code的值一直是NULL自己查找了结果发现F_DATACODE 都不为空,还有一个很奇怪的t.code is not NULL这个判断没效果,if里面的都会执行,换成t.code!=NULL就不判断效果。我还尝试过将t_er_organsum其他列值赋值给code有值不过测试的时候发现中文有乱码显现。他们都没说出为什么不可以,叫我换成游标。我很想确认下这样写是否可以。问题出在那里?很急,麻烦办法看看
解决方案 »
- Java里面插入Oracle语句怎么写(带自增,带日期)
- 请教sql?
- 请教各位如何能够不安装客户端,在linux下虚拟客户端做数据库的连接呢?
- oracle sql语句问题
- OracleOraHome92ClientCache 服务启动不了
- Oracle 9i 中时间类型的赋值问题!!
- 下面的语句错在哪里~
- 请问在Solaris中,是否可以通过编程(最好是shell)自动配置Oracle客户端?
- 这个对insert反映的触发器怎么写?我想在触发器里扑获那条insert语句。那条insert语句含有long行的
- stored procedure的问题。
- 请高手指教,急急急,难度相当大
- 懂hql的进来看看,帮帮忙
2 数据库说它是null,它才是null,数据库告诉你不是null,你觉得它是null,说明你自己的判断出了问题,描述问题时以数据库的结果为准,你的想法不要作为结论,只会误导帮你分析问题的人。
点单步进入的执行到上面那段的时候时候下面有输入t.code是NULL 用当前的ReportID的变量值70b2d8a5-4bcb-4fbd-9cb7-36cbb8ecb4c4在新建个sql查询窗口查询结果看到的结果是有记录并且F_DATACODE都不为空。应该是这样调试的吧?我现在用游标变量去做就可以取到值。
t.code一般不会解析 ,
换成显式调用
或者
再声明一个变量 t_code 把t.cdoe赋值给t_code 观察t_code 的值。