如何在APEX甲骨文使用动态操作来创建视图?(How to create view using dy

2019-09-25 18:38发布

我创建了一个过程来创建动态地使用APEX返回冒号分隔值梭项的图。 下面是创建它的代码。

create or replace procedure create_temporary_view (input_employees in varchar2) is
begin
execute immediate 'create or replace view temp_batch_id as with emps(shuttle_item) as 
(select '''||input_employees||''' from dual)
select regexp_substr(shuttle_item, ''[^:]+'', 1, level) batch_id from emps connect by level <= regexp_count(shuttle_item, '':'') + 1;';
commit;
end;

和执行PL / SQL代码的动态动作里面我添加的代码类似

begin
create_temporary_view(:P12_EMPLOYEES);
end;

其中:P12_EMPLOYEES是梭项给出冒号分隔的值。 显然,当我在甲骨文APEX的SQL命令选项卡做,但这个过程没有充分利用执行PL / SQL代码的动态行为,即所谓这段代码工作。 是否有其特定的原因是什么? 如果有,是什么呢? 如果不是,有什么事情是可能发生的错误? 提前致谢。

Answer 1:

我不知道什么是你的最终目标,但我不会从APEX创建任何表或视图这样。

我想到你居然要填充的集合。

看看如何建立/ APEX填充收集和我想你会发现无论你正在试图做的。



Answer 2:

它看起来像你想你的记号化P12_EMPLOYEES变量。 这是不是这样做的正确方法。 先端有这样一个内置的PL / SQL函数:

apex_string.split( :P12_EMPLOYEES, ':' )

这会给你一个apex_t_varchar2收集,用冒号分开。

为什么你的做法是一个坏主意,考虑一下,如果两个用户正在使用您的应用程序在同一时间发生的事情。 您可以创建一个只用数据这两个用户可见的视图。



文章来源: How to create view using dynamic action in APEX oracle?