文档解释
ORA-06537: OUT bind variable bound to an IN position
Cause: The program attempted to bind an OUT bind variable to a statement that was expecting an IN bind variable at that position.
Action: Make sure that an IN or IN OUT bind mode is specified for the bind argument.
ORA-06537是Oracle PL/SQL编译器的错误码,指出在某条命令的IN参数中绑定了一个OUT变量,或者在OUT参数中绑定了一个IN变量。这种情况下,您实际上是在执行一条无效命令。
官方解释
ORA-06537是指在PL/SQL代码中,遗漏使用相应语句而导致的出错。 例如,在某个命令上,您会同时使用一个IN参数和一个OUT参数,而OUT参数被绑定到一个IN变量上,或者IN参数被绑定到一个OUT变量上,它们都是非法的并且将会导致ORA-06537出错信息。
常见案例
1、即使您使用了IN变量,但如果因此导致OUT变量也可以被使用,这将导致ORA-06537。
2、如果您正在处理一个存储过程,您可能会尝试在一个OUT参数中绑定一个IN变量,这将导致ORA-06537错误。
正常处理方法及步骤
1、检查您的PL/SQL代码,确认您的IN变量是否被绑定到了OUT变量,或者OUT变量是否被绑定到IN变量。
2、如果发现任何不匹配的参数,尝试确认使用相应语句而不是变量是否有效。
3、如果已经确认所有参数是有效的,并且仍然出现ORA-06537错误,则可以尝试以下方法修复错误:
(a)确认您使用正确形式的参数,用来确保IN变量和OUT变量被正确传递。
(b)删除数据库中的旧编译代码,重新编译数据,确认错误是否依然存在。