ORACLE APEX中的页面项绑定变量替换是如何工作的

ORACLE APEX中的页面项绑定变量替换是如何工作的,oracle,oracle-apex,oracle-apex-5.1,oracle-apex-19.1,Oracle,Oracle Apex,Oracle Apex 5.1,Oracle Apex 19.1,我想知道,在存储过程调用中使用某个页面项值时,ORACLE APEX如何识别该值应该是number还是varchar2 my_pkg.proc1(P1 =>:P2_ITEM1); 这里,APEX引擎如何识别proc1的参数P1是否需要数字、varchar2或日期 扩展: 我有一个网格。查询如下 Select * from table(my_pkg.pipe_func(:P2_PARAM1,:P2_PARAM2)); 当用户单击一个按钮时,我需要获取这些绑定替换的当前会话状态值,并且我想

我想知道,在存储过程调用中使用某个页面项值时,ORACLE APEX如何识别该值应该是number还是varchar2

my_pkg.proc1(P1 =>:P2_ITEM1);
这里,APEX引擎如何识别proc1的参数P1是否需要数字、varchar2或日期

扩展:

我有一个网格。查询如下

Select * from table(my_pkg.pipe_func(:P2_PARAM1,:P2_PARAM2));
当用户单击一个按钮时,我需要获取这些绑定替换的当前会话状态值,并且我想将上面的select查询存储在一个表中,如下所示:

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

如何做到这一点?

是Oracle数据库完成了这项繁重的工作,就像多年来一样。在
v$sqlarea

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

where id = to_number(:p1_id)

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

是Oracle数据库完成了这项繁重的工作,其方式与多年来相同。在
v$sqlarea

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

where id = to_number(:p1_id)

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

Hi Scott,感谢您的回复。但是,当我们调用APEX中的过程时,我们没有提到_编号,我们只调用my_pkg.proc1(P1=>:P2_项);不管p1是期望值,还是varchar2,这都是有效的。所以我的问题是。。APEX是怎么做到的?嗨,斯科特,谢谢你的回复。但是,当我们调用APEX中的过程时,我们没有提到_编号,我们只调用my_pkg.proc1(P1=>:P2_项);不管p1是期望值,还是varchar2,这都是有效的。所以我的问题是。。APEX是如何做到这一点的?