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改成字符串形式执行就可以了.
真奇怪.
解决了就好
相关问答:
环境:1.win2003server+oracle9i
2.oracle9i字符集为AMERICAN_AMERICA.WE8ISO8859P1
3.oracle sql developer版本 1.5.5
现象描述: 1.在sql developer 中查询oracle中的某个表,中文全部显示为乱码。
......
比如我有testA、testB、testC三个表
我现在需要写一个批处理或者脚本给别人 作用就是执行这段语句可以清除这三个表里面的数据 就是一个初始化的意思
哪位高人帮助下啊 一个数据库小白在此求救啦
SQL code:
......
我写的一个Job
declare
job1 integer;
begin
dbms_job.submit(job1,
'Sale_FinanceUseFee(4,null,null,null);',
TRUNC(SYSDATE)+1.103, ......
如题。
刚在自己的电脑里安装里Oracle 10g
用MyEclipse设置连接,出现如下错误提示,请问各位高手哪里出了问题:多谢指教!
Error while performing database login with the Oracle driver:
Io exc ......