delphi中如何调用Oracle的自定义函数

lezerger 2009-05-04 10:02:21
我在Oracle中建立了一个函数,如下:

create or replace package spk_Query is
type query_cursor is ref cursor;

function sfn_Manage
(
v_A INT,
v_B INT
)
return query_cursor;
end spk_Query;


函数返回一个游标数据集,请问在Delphi中如何调用它啊?

我在PLSQL Developer中用SELECT spk_Query.sfn_Manage(124265,0) as result FROM DUAL;调用是可以的
放在Delphi里,用TADOQuery直接在TADOQuery.SQL.Text中写上面的句子,Open的时候返回如下错误:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation
at address 61070C35 in module 'MSDATL3.dll'. Read of address 00000000'. Process stopped.
Use Step or Run to continue.
---------------------------
OK Help
---------------------------
改用TADOStoredProc:

ADOPorc.Close;
ADOPorc.ProcedureName := 'spk_Query.sfn_Manage';
ADOPorc.Parameters.Refresh;
ADOPorc.Parameters.ParamByName('v_A').Value := 124265;
ADOPorc.Parameters.ParamByName('v_B').Value := 0;
ADOPorc.ExecProc;


又说参数不对:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'SFN_QUERY_NETMANAGE' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

请问到底该怎么调用?
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lezerger 的回复:]
纠结了,那Delphi里就不能调用Oracle中带参数的函数了吗?
[/Quote]
用BDE或者DBExpress是可以的。
lezerger 2009-05-04
  • 打赏
  • 举报
回复
纠结了,那Delphi里就不能调用Oracle中带参数的函数了吗?
僵哥 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lezerger 的回复:]
感谢楼上的,但是由于数据库用函数返回数据集的方式已经定好了,不好随便修改,所以我想的只是怎么在Delphi中调用。
[/Quote]
ado不支持。
lezerger 2009-05-04
  • 打赏
  • 举报
回复
感谢楼上的,但是由于数据库用函数返回数据集的方式已经定好了,不好随便修改,所以我想的只是怎么在Delphi中调用。
僵哥 2009-05-04
  • 打赏
  • 举报
回复
使用ADOStoredProc的话,建议建立Procedure,而不是Function,参考:http://topic.csdn.net/u/20090423/01/f09753e0-8182-494f-ab10-824a40484dee.html
lezerger 2009-05-04
  • 打赏
  • 举报
回复
函数内容没写,函数返回的是一个游标

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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