Java 在现有表上创建序列-ORA-00940:ALTER命令无效

Java 在现有表上创建序列-ORA-00940:ALTER命令无效,java,sql,oracle,alter,Java,Sql,Oracle,Alter,我创建了一个序列,我想要一个表来使用它。序列的创建工作正常。但是,当我试图更改表以使用序列时,我得到了以下错误(在PersonInformation SequenceAlterTest中): ORA-00940:ALTER命令无效 请注意,我需要使用Java(EclipseIDE) 您的alter语句有语法问题 尝试以下操作(假设该列的数据类型为int。请相应更改): 这只适用于Oracle 12c及更高版本 对于11g或更低,可以使用触发器。如果不想使用触发器,可以在插入中显式使用seq_pe

我创建了一个序列,我想要一个表来使用它。序列的创建工作正常。但是,当我试图更改表以使用序列时,我得到了以下错误(在
PersonInformation SequenceAlterTest
中):

ORA-00940:ALTER命令无效

请注意,我需要使用Java(EclipseIDE)


您的alter语句有语法问题

尝试以下操作(假设该列的数据类型为int。请相应更改):

这只适用于Oracle 12c及更高版本

对于11g或更低,可以使用触发器。如果不想使用触发器,可以在插入中显式使用
seq_person.nextval

insert into personInformationTest (personId, . . .)
values (seq_person.nextval, . . .)
改过自新

字符串PersonInformation SequenceAlterTest= “alter table personInformationTest” +“更改列personId” +“设置默认nextval('seq_person')”

字符串PersonInformation SequenceAlterTest= “alter table personInformationTest” +“修改列personId” +“设置默认nextval('seq_person')”


在Oracle和MySql中,我们使用“修改”来修改现有列。在SQL Server/MS Access中,使用“Alter”

我目前正在使用11g,在这种情况下有没有不使用触发器的方法?唯一的方法是在你的insert语句中显式地写下seq_person.nextval。非常感谢你我尝试过使用它,但当我尝试运行它时,它给了我一个-ORA-00936:缺少的表达式
alter table personInformationTest modify (personId int default seq_person.nextval);
insert into personInformationTest (personId, . . .)
values (seq_person.nextval, . . .)