0

我正在尝试在 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 运行成功。[1 行添加]

但是当我使用这个表创建一个应用程序时 - 请检查它以获取详细信息

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

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

点击这里查看附件

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

4

2 回答 2

2

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

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
 );
于 2017-03-29T13:43:31.003 回答
1

尝试:

Insert into test
(Test_id,test_name)
Select test_seq.nextval, 'something'
   From dual;
 Commit;
于 2017-04-27T17:18:06.540 回答