序列未在Oracle Application Apex中命中创建应用程序后

时间:2017-03-29 13:05:23

标签: oracle oracle-apex-5.1

我正在尝试在oracle apex中创建一个应用程序。我已将它安装在我的电脑(Ubuntu)中。

我在apex中通过sql命令创建了一个表和一个序列。 喜欢

create table test ( test_id number primary key, test_name varchar2(20) not null );

和序列一样 -

create sequence test_seq start with 1 increment by 1;

现在通过sql-comand

在我的表中添加一个值

insert into test values(test_seq.nextval, 'Test');

Okey runnig成功。[已添加1行]

但是当我使用此表创建应用程序时 - Please check it for details

Okey - 页面创建成功,但当我尝试在其中添加数据时,它会说 -

ORA-01400: cannot insert NULL into ("WORKSPACE"."TEST"."TEST_ID")

Click here to See the attachment

那么为什么会出现这个问题?

2 个答案:

答案 0 :(得分:1)

我认为您没有将序列与表的主列相关联。更改您的表格,然后尝试使用应用程序添加数据。

ALTER TABLE TEST
MODIFY (TEST_ID DEFAULT TEST_SEQ.NEXTVAL );

理想情况下,您首先创建序列,然后在创建表时,您可以按如下方式定义列默认值

CREATE TABLE TEST (
    TEST_ID NUMBER DEFAULT TEST_SEQ.NEXTVAL NOT NULL PRIMARY KEY,
    TEST_NAME VARCHAR2(20) NOT NULL
 );

答案 1 :(得分:1)

尝试:

Insert into test
(Test_id,test_name)
Select test_seq.nextval, 'something'
   From dual;
 Commit;