我创建了一个序列,我想要一个表来利用它。该序列的创建工作良好。但是,当我试图修改表以利用序列时,我得到了这个错误(在personInformationSequenceAlterTest中):
ORA-00940:无效的ALTER命令
请注意我需要使用Java (Eclipse )。
String personInformationSequenceTest =
"CREATE SEQUENCE seq_person "
+ "start with 1 "
+ "increment by 1 "
+ "NOCACHE "
+ "NOCYCLE ";
String personInformationSequenceAlterTest =
"alter table personInformationTest "
+ "alter column personId "
+ "set default nextval('seq_person')";
String personInformationSequenceOwnedTest =
"alter sequence seq_person owned by personInformationTest.personId";发布于 2017-03-05 03:48:59
alter语句有语法问题。
尝试此操作(假设该列的数据类型为int。(相应修改):
alter table personInformationTest modify (personId int default seq_person.nextval);这将只在Oracle 12c和更高版本中工作。
对于11g或更低的值,可以使用触发器。如果不想使用触发器,则可以在插入中显式使用seq_person.nextval。
insert into personInformationTest (personId, . . .)
values (seq_person.nextval, . . .)发布于 2017-03-05 03:54:50
通过改变检查
字符串personInformationSequenceAlterTest = "alter“+ "alter”+ "set default nextval('seq_person')";
至
字符串personInformationSequenceAlterTest = "alter“+”修改列personId“+ "set default nextval('seq_person')";
在甲骨文和MySql中,我们使用“修改”来修改现有列。在Server / MS Access中,使用"Alter“。
https://stackoverflow.com/questions/42604263
复制相似问题