vba - 在VB6中执行存储过程时必须声明标识符错误
问题描述
ssqlstmt = "{Call STORED_PROCEDURE(" & INPUTPARAM & ")}"
iResult = objConnect.ExecuteSP(ssqlstmt, 1)
If iResult <> 0 Then
MsgBox "Error"
Else
MsgBox "Success"
End If
错误信息:
[Microsoft][Oracle 的 ODBC 驱动程序][Oracle]ORA-06550:第 1 行,第 7 列:PLS-00201:必须声明标识符“STORED_PROCEDURE” ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略
解决方案
这样的错误意味着用户无权访问该stored_procedure,或者数据库中不存在stored_procedure。
检查拼写。仅仅因为一些错别字而进行接下来的步骤真的很烦人。并且不要忘记检查 stored_procedure 是否位于包中。在这种情况下,您应该调用使用包的名称:
call STORED_PACKAGE.STORED_PROCEDURE
使用您的程序登录的凭据通过 sqlplus 登录,然后尝试从那里调用 stored_procedure。我相信你会面临同样的错误信息
以更“强大”的用户(开发人员帐户甚至 sys)用户身份登录,以查看该过程是否存在于数据库中,以及您的 VB 程序使用的用户是否有足够的权限来运行该例程。