我有一个表 Person 包含字段是 personName,personId 并且没有指定主要我在表中添加了一些值。表 Person 中的值是
('muni',1)
('Ganesh',1)
我需要将主键添加为 personId 并将列修改为自动生成。因此,我尝试通过以下查询生成序列以生成触发器为
declare
id number;
begin
select max(rownum)+1 into id from Person;
execute immediate 'create sequence personseq start with '||to_char(id);
end;
如果我在值在表中时执行上述查询,那么它会正确执行,但是当我有空表时,这意味着表中没有条目,那么上述查询不会生成序列。
我也尝试过 if 语句。
declare
id number;
begin
select max(rownum)+1 into id from Person;
if (id=null) then
execute immediate 'create sequence personseq start with '||to_char(1);
else
execute immediate 'create sequence personseq start with '||to_char(id);
end if;
end;
系统说错误 no is ORA01722
,表示我给的数字无效。但是不知道错在哪里?
任何帮助高度赞赏。