oracle,insert 语句插入一条记录后要求,返回主键id値。

时间:2021-04-23 06:00:58
oracle数据库,表中有id(自增字段,主键), insert 语句插入一条记录后要求,返回当前插入记录的id値。
c#编程。如何解决?
谢谢!

9 个解决方案

#1


oracle里面没有自增字段,在oracle里面需要定义一个序列,你可以写一个存储过程定义一个输出参数

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

create or replace procedure sp_insert(aName int,rst out int) is
begin
  insert into tablename(id,name) values(seqID.nextval,aName);
  rst:=seqID.currval;
end;

#2


select sequence.currval from dual

#3


SELECT @@IDENTITY 

#4


没有自增字段,
创建序列号:   
  CREATE   SEQUENCE   序列号的名称       
  INCREMENT   BY   1       
  START     WITH     1     
  MAXVALUE     99999       
  CYCLE     NOCACHE;   
使用触发器自增。
在查询最大值

#5


创建sequence,oracle里表没有自增列

用sequence即可.

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

select seqID.nextval from dual//这样就会得到一个值

#6


  哇塞,这里好活跃。

#7


Up

#8


sql="insert into [table](列1,列2) values ()"; 
//关键是后面直接加入 
sql+=" SELECT @@IDENTITY as returnID"; 
sqlcommand cmd=new sqlcommand(sql,connection); 
//这就是返回主键值 
int returnID=Convert.ToInt32(cmd.ExecuteScalar()) ; 

#9


顶一下

#1


oracle里面没有自增字段,在oracle里面需要定义一个序列,你可以写一个存储过程定义一个输出参数

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

create or replace procedure sp_insert(aName int,rst out int) is
begin
  insert into tablename(id,name) values(seqID.nextval,aName);
  rst:=seqID.currval;
end;

#2


select sequence.currval from dual

#3


SELECT @@IDENTITY 

#4


没有自增字段,
创建序列号:   
  CREATE   SEQUENCE   序列号的名称       
  INCREMENT   BY   1       
  START     WITH     1     
  MAXVALUE     99999       
  CYCLE     NOCACHE;   
使用触发器自增。
在查询最大值

#5


创建sequence,oracle里表没有自增列

用sequence即可.

create sequence seqID
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache
order;

select seqID.nextval from dual//这样就会得到一个值

#6


  哇塞,这里好活跃。

#7


Up

#8


sql="insert into [table](列1,列2) values ()"; 
//关键是后面直接加入 
sql+=" SELECT @@IDENTITY as returnID"; 
sqlcommand cmd=new sqlcommand(sql,connection); 
//这就是返回主键值 
int returnID=Convert.ToInt32(cmd.ExecuteScalar()) ; 

#9


顶一下