【问题标题】:Getting PL/SQL procedure result into a variable将 PL/SQL 过程结果放入变量中
【发布时间】:2018-11-30 08:47:30
【问题描述】:

我想将 PL/SQL 过程的结果赋值给一个变量 aa_idstu 并在 Oracle Forms 预块触发器中使用这个变量。

我的程序:

select id_stu 
into aa_idstu 
from k_student
where id_stu=30

我想在 Oracle Forms Builder 版本 6.0.8.26.0 中使用 aa_idstu

【问题讨论】:

  • 这看起来更像是一个查询而不是一个过程

标签: oracle plsql triggers procedure oracleforms


【解决方案1】:

您已经得到了一切 - 只需将该代码放入 PRE-BLOCK 触发器即可。不过,您需要先DECLARE 变量:

-- PRE-BLOCK trigger
declare
  aa_idstu k_student.id_stu%type;
begin
  select id_stu 
  into aa_idstu 
  from k_student
  where id_stu = 30;
end;

我不知道一旦你得到它的值你会如何处理这个变量,但我想你会的。

另外,请注意可能的 NO_DATA_FOUNDTOO_MANY_ROWS - 如果 WHERE 条件不返回单个值,则 SELECT 将失败,因此您必须以某种方式处理它。

【讨论】:

  • 我可以使用程序的名称吗?比如:声明aa_idstu k_student.id_stu%type;开始我的程序;结束;
  • 当然可以,但是您宁愿使用 函数(返回值)而不是过程(带有 OUT 参数)。
  • 完成。现在我在使用表单时遇到了另一个问题:如果 aa_idstu = 50,我想在画布 sss 中隐藏“TEXT428”,我的代码是:如果 aa_idstu=50 然后 set_item_property('TEXT428',visible,property_false);万一;它给了我这个错误:FRM-40105: Unable to resolve reference to item TEXT428 我该如何解决?
  • 我在 pre_block 触发器中使用它
  • 错误提示没有名称为 TEXT428 的项目。
猜你喜欢
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
相关资源
最近更新 更多