首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle主详细信息页创建: ORA-06531错误

问Oracle主详细信息页创建: ORA-06531错误
EN

Stack Overflow用户
提问于 2021-08-27 12:37:47
回答 1查看 178关注 0票数 2

我正在使用APEX创建一个具有以下PL/SQL方案的羊群管理应用程序:

代码语言:javascript
复制
-- SHEEP table
create table sheep (
    sheep_id number(*,0) generated by default on null as identity,
    eid varchar2(6) not null,
    sex varchar2(6) not null,
    name varchar2(45),
    breed varchar2(255) not null,
    birth date,
    sheep_state varchar2(45) not null,
    lambs number(*,0) not null,
    lambs_sets number(*,0) not null,
    markings varchar2(4000),
    note varchar2(4000),
    constraint sheep_pk primary key (sheep_id)
);

-- EVENT table
create table event (
    event_id number(*,0) generated by default on null as identity,
    sheep_id varchar2(6) not null,
    name varchar2(255) not null,
    event_date date not null,
    description varchar2(4000) not null,
    location varchar2(45) not null,
    constraint event_pk primary key (event_id)
);

-- SALE table
create table sale (
    sale_id number(*,0) generated by default on null as identity,
    sheep_id varchar2(6) not null,
    price number(*,2) not null,
    sale_date date not null,
    location varchar2(45) not null,
    note varchar2(4000),
    constraint sale_pk primary key (sale_id)
);

在该方案中,SALE和EVENT表引用绵羊表的EID (唯一标识符为5个数字和一个字母--代表他们耳朵中的黄色标记)。我正在尝试创建一个主详细信息页面,该页面将绵羊与特定事件(绵羊身上发生的事情)和销售历史(如果已经售出,何时、何地、以多少)联系起来。

我尝试同时使用创建应用程序向导和创建页面向导,但是每次我都收到相同的错误:

Ajax调用返回服务器错误ORA-06531:引用未初始化的集合以执行PL/SQL代码。

它仍然允许我在向导中继续,但是当我想选择details表(SALE & EVENT)时,它们甚至不会出现在选择list (cf 这里)中。

有人有主意吗?我对APEX非常陌生,我可能错过了一些东西。此外,如果您有任何建议考虑到我的关系方案(改变,提高效率),不要犹豫地告诉我。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-27 14:13:13

事件和绵羊之间没有关系,销售和绵羊之间也没有关系。您可以声明SALE和EVENT表引用绵羊表的EID字段,但是数据库不知道这一点,因为这种关系还没有通过外键来定义。表中的外键引用另一个表的主键,即使它是唯一的,也不能引用另一个列(如EID)。

在脚本中,在所有表中创建sheep_id NUMBER,并在出售和事件中创建一个外键。如下所示:

代码语言:javascript
复制
-- SHEEP table
create table sheep (
    sheep_id number(*,0) generated by default on null as identity,
    eid varchar2(6) not null,
    sex varchar2(6) not null,
    name varchar2(45),
    breed varchar2(255) not null,
    birth date,
    sheep_state varchar2(45) not null,
    lambs number(*,0) not null,
    lambs_sets number(*,0) not null,
    markings varchar2(4000),
    note varchar2(4000),
    constraint sheep_pk primary key (sheep_id)
);

-- EVENT table
create table event (
    event_id number(*,0) generated by default on null as identity,
    sheep_id number not null,
    name varchar2(255) not null,
    event_date date not null,
    description varchar2(4000) not null,
    location varchar2(45) not null,
    constraint event_pk primary key (event_id),
    constraint fk_event_sheep
      foreign key (sheep_id)
      references sheep(sheep_id)
);

-- SALE table
create table sale (
    sale_id number(*,0) generated by default on null as identity,
    sheep_id number not null,
    price number(*,2) not null,
    sale_date date not null,
    location varchar2(45) not null,
    note varchar2(4000),
    constraint sale_pk primary key (sale_id),
    constraint fk_sale_sheep
      foreign key (sheep_id)
      references sheep(sheep_id)    
);

这是在关系数据库系统中创建主细节关系的方法,它还允许您在APEX中创建主细节表单。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68953581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档