ORA-24338:未执行语句句柄 这是个什么错误?

ccstarry 2009-08-09 04:33:40
一台服务器win2003server 64位的Web服务器,数据库在另外一台机器上,Web服务器上面同时跑着一个Asp.net和一个asp的网站。过去用得好好的,忽然有一天用户反映asp.net的程序查询出错了,我一看查询时候页面报错 ORA-24338:未执行语句句柄 ,但是asp的查询程序是好的。两个程序查询的都是一个数据库。刚开始以为是程序出错了,程序重装后问题如故,但只要把程序装到别的机器上就是好的,就这台Web服务器不行,我上网查了一下都说是游标未打开,如果游标未打开应该是任何机器上都会出现这个问题,为什么就这台机器有问题呢?和机器设置有关系吗?

求助各位高手解答一下,谢谢!
...全文
2188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccstarry 2009-08-13
  • 打赏
  • 举报
回复
数据库都是用同一个,只是Web服务器不一样而已;
inthirties 2009-08-09
  • 打赏
  • 举报
回复
每个数据库里的数据都一样的么。

可能有时候不同的数据走了不同的逻辑。
ccstarry 2009-08-09
  • 打赏
  • 举报
回复
程序不是我开发的,我并没有代码,但是在别的机器上又是好的,如果没有打开游标,应该所有机器上都是一样的错,为什么就这台服务器上会报错?
inthirties 2009-08-09
  • 打赏
  • 举报
回复
检查一下程序,是不是有些procedure的游标没有open。
#include "lrd.h" static LRD_INIT_INFO InitInfo={LRD_INIT_INFO_EYECAT}; static LRD_DEFAULT_DB_VERSION DBTypeVersion[]={{LRD_DBTYPE_NONE,LRD_DBVERSION_NONE}}; //这里的LRD_VAR_DESC数据结构声明是很重要的,他是用来存储sql结果数据集的结构体,第一个参数头文件中就是这么写的,第二个参数是最大行数,第三个参数是每一行的最大长度,如果获得的查询结果比定义的长,运行时就会报错,提示列被截断,最后一个参数是查询结果的类型,可以再帮助中的索引输入data types, database,列出的表格中是各种变量类型的名称 static LRD_VAR_DESC NUM ={LRD_VAR_DESC_EYECAT, 10, 32, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_LONG_VARCHAR}; //下面这些句柄等变量的申请都可以照着帮助中的例子写 /***************** 这里省略了,具体见附件 */ Action() { lrd_ora8_stmt(OraStm1,"select service_num from auto_zb_provision where rownum<2",1,0,0); //执行定义的sql,并且将结果行数返回到rownum中 lrd_ora8_exec(OraSvc1,OraStm1,0,0,&rownum;,0,0,0,0,1); //绑定该列 lrd_ora8_bind_col(OraStm1,&OraDef1;,1,&NUM;,0,0); //设定保存列中的某个数据到row中,第二个参数为第几列,第三个参数为第几行(只能保存一个值),最后一个参数就是你想要保存到的parameter名称 lrd_ora8_save_col(OraStm1, 1, 1, 0, "result"); //这个遍历刚才查询的结果,第二个参数0表示就1行,负号表示遍历所有结果,绝对值表示实际有多少行,第三个参数表示一次遍历最大进行多少行(不能大于LRD_VAR_DESC中定义的第二个参数,即最大行数)

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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