【问题标题】:identifier must be declared error when executing stored procedure in VB6在VB6中执行存储过程时必须声明标识符错误
【发布时间】:2021-06-09 21:25:38
【问题描述】:
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:语句被忽略

【问题讨论】:

  • objConnect 是什么类型的对象?将有助于显示更多的上下文代码。您的 SP 是字面上称为“STORED_PROCEDURE”还是占位符/编辑?
  • 请在edit 的问题中加上minimal reproducible example 包括:用于创建过程的DDL (CREATE PROCEDURE) 语句; INPUTPARAM 的值是什么。
  • 查看一个很好的例子:stackoverflow.com/questions/4558714/…

标签: vba oracle plsql oracle11g vb6


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-12-09
    • 2018-09-20
    • 1970-01-01
    • 2021-05-03
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多