1

我想知道 ORACLE APEX 在存储过程调用中使用时如何识别某个页面项值是否应该作为数字或 varchar2。

my_pkg.proc1(P1 =>:P2_ITEM1);

在这里,APEX 引擎如何识别 proc1 的参数 P1 是否需要数字或 varchar2 或日期。

扩展:

我有一个网格。查询如下

Select * from table(my_pkg.pipe_func(:P2_PARAM1,:P2_PARAM2));

当用户单击按钮时,我需要获取这些绑定替换的当前会话状态值,并且我想将上面的选择查询存储在表中

Select * from table(my_pkg.pipe_func('ParamVal',256));

如何做到这一点?

4

1 回答 1

0

正是 Oracle 数据库完成了这项繁重的工作,就像它多年来所做的那样。您可以v$sqlarea.

并且您应该明确转换这些绑定变量,因为它们将被视为 varchar - 与它们的存储相同。

where id = to_number(:p1_id)

从 APEX 的角度来看,如果用户更改屏幕上的值,并且您调用动态操作以使用这些项目刷新区域 - 您应该将它们列在区域 SQL 下方的“要提交的页面项目”属性中。这将确保在进行刷新之前,使用浏览器中的内容更新数据库会话状态。

于 2020-06-23T01:15:28.527 回答