【问题标题】:ORA-06576: Not a valid function or procedure nameORA-06576: 不是有效的函数或过程名称
【发布时间】:2021-03-25 14:11:24
【问题描述】:

我正在尝试调用 Oracle 中的存储函数,我确定它存在并且我可以访问它,我可以从 SQL Developer 调用它,但是当我尝试使用 jdbcTemplate 从 Java Springboot 调用它时,它表示它不是一个有效的函数或过程。

我在 SQLDeveloper 和 Java 连接中使用同一个用户,他也是包所有者。

具体错误是:

oracle.jdbc.OracleDatabaseException: ORA-06576: Not a valid function or procedure name.

我这样称呼它:

User inspector = jdbcTemplate.queryForObject("CALL PKG_USUARIO.INICIAR_INSPECTOR(1, '123456')", newUserMapper());

我搜索了这个问题,但在这种情况下没有解决,感谢帮助!,谢谢:)

【问题讨论】:

    标签: java spring-boot jdbc oracle11g jdbctemplate


    【解决方案1】:

    检查:

    1. 您正在连接到正确的数据库服务器。

    2. 您正在连接到服务器上正确的数据库实例。

    3. 您正在以正确的用户身份连接。

    4. 您有正确的程序名称。 (并且该过程没有被赋予一个非标准名称,该名称需要在标识符周围加上双引号,例如PKG_USUARIO."inicar_inspector"。)

    5. 您连接的用户有权执行该过程。

    6. 程序编译成功。

    7. 该过程实际上是一个过程而不是一个函数,它需要有一个返回值并且是called using

      {? = CALL PKG_USUARIO.INICIAR_INSPECTOR(?,?)}
      

      BEGIN ? := PKG_USUARIO.INICIAR_INSPECTOR(?,?); END;
      

    【讨论】:

    • 我尝试了 "PKG_USUARIO."inicar_inspector"" 但它仍然无法正常工作。也许它需要变量来存储结果,但我认为它的 RowMapper 用于......然后我将看看如何添加该变量。谢谢。
    猜你喜欢
    • 2016-04-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2019-05-09
    • 2020-08-26
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多