【发布时间】:2011-12-22 15:45:04
【问题描述】:
我将 Oracle 函数声明为
create or replace FUNCTION CheckScan(
pMode IN number,
pAgrISN in number,
pAgrId in varchar2,
pDocISN in number,
pRefundId in varchar2) RETURN NUMBER IS ...
以及以管理员身份连接到 Oracle 的客户端 Visual Basic 6 代码,例如:
...
cmd.ActiveConnection = conn
cmd.CommandText = "CheckScan"
cmd.CommandType = 4 'adCmdStoredProc
Dim pMode As Integer
Dim pAgrISN As Integer
Dim pAgrId As String
Dim pDocISN As Integer
Dim pRefundId As String
pMode = 2
pAgrISN = 12345
pAgrId = "Some-Id"
pDocISN = 12345
pRefundId = "Some-id"
cmd.Parameters.Append cmd.CreateParameter("pMode", 131, 1, 10, pMode)
cmd.Parameters.Append cmd.CreateParameter("pAgrISN", 131, 1, 10, pAgrISN)
cmd.Parameters.Append cmd.CreateParameter("pAgrId", 200, 1, 255, pAgrId)
cmd.Parameters.Append cmd.CreateParameter("pDocISN", 131, 1, 255, pDocISN)
cmd.Parameters.Append cmd.CreateParameter("pRefundId", 200, 1, 255, pRefundId)
cmd.Execute
这段代码以:
结尾PLS-00221: "CHECKSCAN" is not a procedure or is undefined
这里有什么问题?函数编译成功。
提前感谢您!
【问题讨论】:
-
连接到Oracle DB的用户是否对该函数有EXECUTE权限?该函数还返回一个值,您在捕获它吗?
-
是的,这是一个管理员帐户
标签: oracle stored-procedures vb6 oledb