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的主要内容,如果未能解决你的问题,请参考以下文章