使用ADO,如何调用Oracle PL/SQL块并指定输入/输出绑定变量(参数?)
我试图用ADO和VBA调用PL/SQL块,但无法传递输入和/或输出绑定变量(可能是aka参数) 上面的代码段在使用ADO,如何调用Oracle PL/SQL块并指定输入/输出绑定变量(参数?),oracle,vba,ado,Oracle,Vba,Ado,我试图用ADO和VBA调用PL/SQL块,但无法传递输入和/或输出绑定变量(可能是aka参数) 上面的代码段在cm处失败。使用ORA-01008执行行:并非所有变量都绑定了 如果能为我的问题找到解决方案,我将不胜感激。这句话似乎不能以声明开始。(感谢托马斯·琼斯·洛的宝贵评论) 因此,该语句必须包含在另一个begin。。结束块: ' additional begin so that the statement does not start with a declare: plsql =
cm处失败。使用ORA-01008执行行:并非所有变量都绑定了
如果能为我的问题找到解决方案,我将不胜感激。这句话似乎不能以声明开始。(感谢托马斯·琼斯·洛的宝贵评论)
因此,该语句必须包含在另一个begin。。结束
块:
' additional begin so that the statement does not start with a declare:
plsql = "begin "
plsql = plsql & "declare"
plsql = plsql & " num_in number := ?;"
plsql = plsql & " num_out number; "
plsql = plsql & "begin"
plsql = plsql & " num_out := num_in * 5;"
plsql = plsql & " ? := num_out;"
plsql = plsql & "end;"
' closing the additional begin:
plsql = plsql & "end;"
现在,它按预期工作。我不确定Oracle是否允许您在匿名PL/SQL块中定义这样的变量。你想做什么?这显然是我真正想要实现的一个精简版本。真正的事情是实例化一个PL/SQL对象类型,将实例传递给一个过程,然后在对象类型上评估一些方法和成员。非常好的问题…oracle和ado冲突的无限奇怪的方式是无限多的…天啊,你救了我一天!干得好非常感谢。完全愚蠢的行为。你是怎么找到这个解决方案的?
' additional begin so that the statement does not start with a declare:
plsql = "begin "
plsql = plsql & "declare"
plsql = plsql & " num_in number := ?;"
plsql = plsql & " num_out number; "
plsql = plsql & "begin"
plsql = plsql & " num_out := num_in * 5;"
plsql = plsql & " ? := num_out;"
plsql = plsql & "end;"
' closing the additional begin:
plsql = plsql & "end;"