【发布时间】:2011-12-14 14:35:20
【问题描述】:
我有这样描述的 oracle 程序:
create or replace procedure "TEST_PROC" (
param1 IN VARCHAR2,
param2 IN VARCHAR2,
output OUT BOOLEAN) is
begin
output := True;
end;
我有 vb6 代码填充输入/输出参数,如下所示:
...
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = "Provider=MSDAORA; ...
...
cmd.CommandText = "TEST_PROC"
cmd.CommandType = 4 'adCmdStoredProc
Dim v As String
v = "some-value"
cmd.Parameters.Append cmd.CreateParameter("param1", 200, 1, 255, v)
cmd.Parameters.Append cmd.CreateParameter("param2", 200, 1, 255, v)
cmd.Parameters.Append cmd.CreateParameter("output", 11, 2, 1, 0)
cmd.Execute
但它在执行时出现错误:
PLS-00306: wrong number or types of arguments in call to 'TEST_PROC'
这里有什么问题? 先感谢您!
【问题讨论】:
-
乍一看,我会说这是因为您试图将参数传递给“OUT”变量,该函数只需要 2 个输入,看起来好像传递了 3 个,你能请解释一下该功能应该做什么?
-
它将获取过滤条件(2 个字符串)作为输入参数,如果存在记录则返回
-
请问您有应用这 2 个过滤条件的 SQL 查询吗?
-
谢谢你,马特! DCookie 找到原因了!