首页 > 解决方案 > 在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:语句被忽略

标签: vbaoracleplsqloracle11gvb6

解决方案


这样的错误意味着用户无权访问该stored_procedure,或者数据库中不存在stored_procedure。

  1. 检查拼写。仅仅因为一些错别字而进行接下来的步骤真的很烦人。并且不要忘记检查 stored_procedure 是否位于包中。在这种情况下,您应该调用使用包的名称:

    call STORED_PACKAGE.STORED_PROCEDURE
    
  2. 使用您的程序登录的凭据通过 sqlplus 登录,然后尝试从那里调用 stored_procedure。我相信你会面临同样的错误信息

  3. 以更“强大”的用户(开发人员帐户甚至 sys)用户身份登录,以查看该过程是否存在于数据库中,以及您的 VB 程序使用的用户是否有足够的权限来运行该例程。


推荐阅读