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错误!大家帮帮忙!
...全文
20 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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出问题!
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2003-06-16 03:17
社区公告
暂无公告