Oracle 表格 6i ORA-01008

Posted

技术标签:

【中文标题】Oracle 表格 6i ORA-01008【英文标题】:Oracle Forms 6i ORA-01008 【发布时间】:2014-03-04 11:43:56 【问题描述】:

我尝试使用其函数 (GETMERNISINFO(v_var number)) 从 DB 包 (ORTAK.MERNIS) 获取一些记录到 PLL 包类型 (MERNISLIB.MERNIS_USER)。

但是我在向 db 包函数 (:TCK) 发送参数时遇到了麻烦。它抛出 ORA-01008 : Not all variables bound

如果我静态设置函数参数(ORTAK.MERNIS.GETMERNISINFO(12345678)),它会按预期工作。

我在 Oracle Forms 6i 中使用该代码

有什么想法吗?

declare
MUSER MERNISLIB.MERNIS_USER;
begin

SELECT TCK,ADI,SOYADI INTO MUSER from table(cast(ORTAK.MERNIS.GETMERNISINFO(:TCK) as ORTAK.TCKTABLE));  

:ADI := MUSER.ADI;
:SOYADI := MUSER.SOYADI;

end;

【问题讨论】:

:TCK 来自哪里;它实际上有一个值集吗? :TCK 来自 text_item 并且已经设置。我已经仔细检查了它是否为空。所以它不是空的。 试试SELECT TCK,ADI,SOYADI INTO MUSER from table(cast(ORTAK.MERNIS.GETMERNISINFO(:TCK)) as ORTAK.TCKTABLE); @simplify_life,出现语法错误:) 【参考方案1】:

看起来 tck 来自表单上的文本输入项。您能否尝试将其完全限定为 :block_name.item_name。

【讨论】:

是一样的。没有改变 。仍然出现 ora-01008 错误 该错误表明 :tck 变量未绑定到某个值。能不能写个声明 message('Value '||:tck);在选择之前和开始之后。这将在表单中打开一个消息框,以显示表单在执行时对变量的值。 我之前已经放过了。现在又做了一次。弹出窗口正确显示了值。所以:tck 变量不为空。 尝试将值分配给局部变量,然后将其传入。 我也试过了!也许这是一个错误。或者发生了我错过的事情!【参考方案2】:

图书馆看不到 :ADI 和 :SOYADI 表单项,因为无法保证图书馆附加到的表单中会包含它们。

使用 COPY 和 NAME_IN 函数来填充或读取库过程中的表单块项目。

【讨论】:

以上是关于Oracle 表格 6i ORA-01008的主要内容,如果未能解决你的问题,请参考以下文章

Oracle“ORA-01008:并非所有变量都绑定”错误带参数

cx_ORACLE 传递参数 ORA-01008 错误

ORA-01008: 并非所有变量都绑定。他们被束缚

ORA-01008: 并非所有变量都已绑定

ORA-01008: 并非所有变量都已绑定

甲骨文“ORA-01008”错误。变量未绑定