Oracle apex Oracle APEX(v19.1.0.00.15)不获取原始数据类型

Oracle apex Oracle APEX(v19.1.0.00.15)不获取原始数据类型,oracle-apex,oracle-apex-19.1,Oracle Apex,Oracle Apex 19.1,我有一个id字段类型为guid/raw(32)的表作为FK。 我用PageWizzard创建了一个“深入”页面。wizzard不会将此id字段放入编辑页面。我手动放置它,但生成的获取过程不会将值获取到其中。页面保存工作正常,包括此字段。我还使用另一个手动插入但不同的字段类型测试页面,它也可以工作。对于测试,它还创建了一个“带表单的报告”,并且工作良好。它使用另一种方法,而不是获取过程。有什么技巧可以让它工作吗?我能够重现这种行为,但它似乎与其他区域一致,例如带有表单的报告。我想这可以用不同的方式

我有一个id字段类型为guid/raw(32)的表作为FK。
我用PageWizzard创建了一个“深入”页面。wizzard不会将此id字段放入编辑页面。我手动放置它,但生成的获取过程不会将值获取到其中。页面保存工作正常,包括此字段。我还使用另一个手动插入但不同的字段类型测试页面,它也可以工作。对于测试,它还创建了一个“带表单的报告”,并且工作良好。它使用另一种方法,而不是获取过程。有什么技巧可以让它工作吗?

我能够重现这种行为,但它似乎与其他区域一致,例如带有表单的报告。我想这可以用不同的方式来论证,因为原始值不能真正显示出来,除非显示为一系列的1和0,这不是真正有用的。您必须将值转换为十六进制之类的值,而APEX不应该对如何进行转换有太多发言权

我成功使用的一个解决方法是在表的顶部创建一个视图,该视图使用RAWTOHEX将原始类型显式转换为十六进制。下面是一个示例脚本:

create table p (
  id raw(16) default sys_guid() primary key,
  name varchar2(10) not null
);

create table c (
  id        raw(16) default sys_guid(),
  parent_id raw(16) not null
            constraint c_p_id_fk
            references p,
  name      varchar2(10) not null
);

declare

  l_p1_id raw(16);
  l_p2_id raw(16);
  l_p3_id raw(16);

begin

  insert into p (name) values ('p 1') returning id into l_p1_id;
  insert into p (name) values ('p 2') returning id into l_p2_id;
  insert into p (name) values ('p 3') returning id into l_p3_id;

  insert into c (parent_id, name) values (l_p1_id, 'c 1 p 1');
  insert into c (parent_id, name) values (l_p1_id, 'c 2 p 1');
  insert into c (parent_id, name) values (l_p2_id, 'c 3 p 2');
  insert into c (parent_id, name) values (l_p3_id, 'c 4 p 3');
  insert into c (parent_id, name) values (l_p3_id, 'c 5 p 3');
  insert into c (parent_id, name) values (l_p3_id, 'c 6 p 3');

end;
/

create view p_v
as
select rawtohex(id) as id,
  name
from p;

然后,我使用ROWID伪列而不是PK列创建了Master Detail页面,这样PK字段就可以编辑了(尽管我仍然不知道为什么要这样做)

创建“深入”页面是什么意思?这不是“创建页面向导”中的选项名称。我测试了“主细节”和“带表单的报告”,效果很好。我的意思是,这是一个主细节页面(向下钻取类型)。当您说“wizzard没有将此id字段放入编辑页”时,您是指父表还是子表的id?另外,您是否希望用户编辑转换为十六进制或其他形式的原始ID?你为什么要揭露这个领域?