pro*c 中空值处理的问题,很急,大家帮帮忙!在线等待!

dushuang 2003-06-16 03:17:11
我用fetch取表中date类型数据,如下

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR upd_pgm_date[14];
EXEC SQL END DECLARE SECTION;

EXEC SQL DECLARE C1 CURSOR FOR
NVL(TO_CHAR(UPD_PGM_DATE,'YYYYMMDDHH24MMSS'),'test')
FROM TESTTABLE

EXEC SQL OPEN C1;
while(1)
{
memset( &upd_pgm_date,0x00,sizeof(upd_pgm_date));
EXEC SQL FETCH C1 INTO :upd_pgm_date;
if (sqlca.sqlcode == 1403)
{
break;
}
}
EXEC SQL CLOSE C1;

为什么会出错,UPD_PGM_DATE字段为date类型,当他为空时没问题,但当他有正确的值的时候会出1455错误!大家帮帮忙!
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dushuang 2003-06-16
  • 打赏
  • 举报
回复
解决了!
dushuang 2003-06-16
  • 打赏
  • 举报
回复
加指示器变量也不行
songxc 2003-06-16
  • 打赏
  • 举报
回复
需要给宿主变量upd_pgm_date 加指示器变量,fetch 后检查 指示器变量的值,
关于如何使用指示器变量,我也记不清楚了,sorry
dushuang 2003-06-16
  • 打赏
  • 举报
回复
都不是!
silverfoxes 2003-06-16
  • 打赏
  • 举报
回复
试试看把memset( &upd_pgm_date,0x00,sizeof(upd_pgm_date));
改成memset(upd_pgm_date,0x00,sizeof(upd_pgm_date));
black_snail 2003-06-16
  • 打赏
  • 举报
回复
just guessing.

how big is upd_pgm_date?

it must be big enough to contain the YYYYMMDDHH24MMSS format
dushuang 2003-06-16
  • 打赏
  • 举报
回复
打开CURSOR没问题,但fetch出问题!

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧