首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

调用Oracle存储过程返回数据集的有关问题

2013-03-26 
调用Oracle存储过程返回数据集的问题Oracle存储过程CREATE OR REPLACE PROCEDURE MYDATA.AAA /* (参数, 参

调用Oracle存储过程返回数据集的问题
Oracle存储过程
CREATE OR REPLACE PROCEDURE MYDATA.AAA /* (参数, 参数...) */
(
v_id in NUMBER,
c_outdata out SYS_REFCURSOR
)
IS

v_sql varchar2(200);
BEGIN
v_sql :='select * from userinfo where userid='||v_id;
open c_outdata for v_sql;
END ;
/

DELPHI 调用

var
  ADOStoredProc:TADOStoredProc;
begin
  ADOStoredProc:=TADOStoredProc.Create(nil);
  try
  try
  ADOStoredProc.Connection:=ADOConnection;
  ADOStoredProc.Close;
  ADOStoredProc.ProcedureName:=MYDATA.AAA';
  ADOStoredProc.Parameters.CreateParameter('c_id',ftInteger,pdInput,10,123);
  ADOStoredProc.Open;
  except
  on E:Exception do
  begin
  Msgbox(E.Message,mtError,[mbok],0);
  end;
  end;
  finally
  ADOStoredProc.Free;
  end;
  end;


错误信息:



弄了很久了就是不行



[解决办法]
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html
[解决办法]
首先在查询分析器里调试存储过程,然后检查输入参数是否正确。
[解决办法]
参考下我以前的:
http://topic.csdn.net/t/20061124/10/5181888.html
可能是ADO的问题
(你的Oracle存储过程本身没问题,也可能是表字段类型问题)


[解决办法]
我测试下,果然又是ADO的问题
你用Microsoft OLE DB Provider for Oracle就应该OK了

热点排行