And*_*ler 1 oracle-sqldeveloper oracle-apex oracle12c
我想在 Oracle SQL Developer 中为我的 apex web 应用程序创建一个 apex_collection。这是我的代码:
apex_collections.create_or_truncate_collection('TEST');
Run Code Online (Sandbox Code Playgroud)
运行语句后,我得到以下信息:
如果我输入选择语句:
SELECT *
FROM apex_collections
WHERE collection_name = 'TEST';
Run Code Online (Sandbox Code Playgroud)
之后,我得到了这个:
在我看来,没有创建集合,尽管没有错误代码。我究竟做错了什么?为什么没有创建集合?我也尝试在 Oracle APEX 的 SQL Workshop 中运行该语句,但该命令在那里未知。我正在使用 Oracle 12c 版本。
您需要一个有效的 APEX 会话来创建集合。如果您使用的是 APEX 18.1 或更高版本,请使用该过程apex_session.create_session(请参阅文档)创建一个。确保 app_id 对您的架构分配到的工作区有效。
对于 18.1 之前的任何内容,OraOpenSource oos-utils都有一个执行相同操作的过程:(oos_util_apex.create_session请参阅代码)。您将需要安装 oos-utils,或者至少在您的架构中编译这个包。或者,复制此过程中包含的活动。
更新:另外,我刚刚注意到杰夫史密斯的评论。您需要向集合中添加成员才能获得有意义的结果。
begin
apex_session.create_session(
p_app_id => 100
, p_page_id => 1
, p_username => 'somebody'
);
end;
/
select * from apex_collections; -- shows nothing
begin
apex_collection.create_or_truncate_collection(
p_collection_name => 'test'
);
apex_collection.add_member(
p_collection_name => 'test'
, p_c001 => 'test row'
);
end;
/
select * from apex_collections; -- shows one record
Run Code Online (Sandbox Code Playgroud)
此外,如果您使用 SQLDEV 对 APEX 会话中的集合进行故障排除,则您需要使用apex_session.attach或oos_util_apex.join_session过程,具体取决于您运行的 APEX 版本。使用分配给浏览器会话的 APEX 会话 ID。哈。
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |