如何解决程序中的 ORA-01006?

Posted

技术标签:

【中文标题】如何解决程序中的 ORA-01006?【英文标题】:How to solve ORA-01006 in procedure? 【发布时间】:2019-04-06 16:58:00 【问题描述】:

我需要一个程序来计算某些东西的计数并将其插入另一个表中,但出现错误

ORA-01006:绑定变量不存在。

这是我的代码:

插入部分不被执行,而是跳转到异常。

【问题讨论】:

为了将来参考,请不要将您的代码发布为图像。许多人无法在转储站点中查看图像,而且代码无论如何都很难阅读。因此,您只是在减少可以帮助您的人。 阅读此内容,因为您是 SO 新手。 ***.com/help/someone-answers 【参考方案1】:

您的动态 SQL 调用是

EXECUTE IMMEDIATE v_sql USING v_result;

这是将参数传递到动态语句的语法。但是您的代码不带任何参数,因为您已将它们连接到字符串中。因此,代码会抛出 ORA-01006。

您需要做的是为要返回的结果集提供一个变量。所以调用应该是

EXECUTE IMMEDIATE v_sql INTO v_result;

EXECUTE IMMEDIATE 的语法在the PL/SQL guide 中全面介绍。您应该为 Oracle 文档添加书签以供将来参考。

【讨论】:

非常感谢,我将 v_sql 内容更改为 'select sum(P2P) as Su'

以上是关于如何解决程序中的 ORA-01006?的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01006: 执行选择时绑定变量

jdbc查询数据库报:java.sql.SQLException: ORA-01006: 绑定变量不存在

在 SYS_REFCURSOR 中执行动态 sql 语句

努力在 C# 中使用绑定变量

如何解决 Android 应用程序受众网络中的质量检查问题?

如何解决 xcode(仪器)中的 iPhone 应用程序内存泄漏