ADO.NET调用Oracle存储过程?
有个存储过程有三个Int参数和一个Out参数.
执行时先将一些数据插入到一个表中.然后再从表中取出数据进行行转列,合计等逻辑.将处理结果放到一个表中.并将Id通过Out参数返回.
但在执行时可以获取到Out值,但就是没法从表中获取数据.排查后是因为无法往表中插数据,但存储过程是对的,不论是SQL Plus还是青蛙都行.就是不能用ADO.NET获取到结果.
存储过程中有多处Commit,这个有影响吗?之前的存储过程中没有反表中插数据时是可能执行的.
我的就是这样调用的.
代码没问题.
因为之前的存储过程都能执行.
问题是现在这个存储过程中要涉及到三个表,先将要处理的数据插到A表中,commit;,然后从中取出插入的数据进行一定的逻辑处理后将列信息插入到B表,commit;,将数据插入到C表,commit;,返回唯一标识符.
在代码中获取标识符根据B表中的信息生成SQL语句,从C表中取出数据.
现在问题就是A,B,C表都没有数据,但可以返回标识符.
补充:
在SQL Plus 及青蛙中可以正常执行.
感谢楼上的,但问题在于存储过程在通过ADO.NET执行时就不往表中插数据了.
oracle中存储过程返回结果集需要用游标返回
问题找到了.
将插入数据的Sql改成字符串形式执行就可以了.
真奇怪.
解决了就好
相关问答:
我安装一台redhat linux5+oracle 10g的服务器,笔记本(XP系统)安装了oracle 10g客户端,结果老是出12560的错误,请高手指点一二,
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dpor ......
环境:1.win2003server+oracle9i
2.oracle9i字符集为AMERICAN_AMERICA.WE8ISO8859P1
3.oracle sql developer版本 1.5.5
现象描述: 1.在sql developer 中查询oracle中的某个表,中文全部显示为乱码。
......
日前用oci函数查询oracle数据时出现个问题,就是在查询到date类型的数据时,使用pl/sql 查询oracle库中的数据显示是
2009-9-29 12:12:12
但是通过语句select * from tablename 查询,使用oci_fetch_array() ......
delphi 怎么将oracle的long raw 字段值 导入blob字段
http://blog.csdn.net/zxf_feng/archive/2008/12/21/3571961.aspx
看看这个
引用
vStream := TMemorySt ......
导出、导入都是 oracle 10g 。
在导入过程中出现如下情况:
IMP-00017: 由于 ORACLE 错误 6550, 以下语句失败:
"DECLARE SREC DBMS_STATS.STATREC; BEGIN SREC.MINVAL := '4E014E50 ......