我正在尝试在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
那么为什么会出现这个问题?
答案 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;