【问题标题】:Oracle Forms 6i ORA-01008Oracle 表格 6i ORA-01008
【发布时间】:2023-03-28 04:45:01
【问题描述】:

我尝试使用其函数 (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,出现语法错误:)

标签: oracle plsql oracleforms


【解决方案1】:

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

【讨论】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多