如何在插入一条记录时返回一个自动生成的值?

zhui22222 2011-08-23 04:32:44
百度了一下,说是可以在插入语句后加上 returning (字段名)into (新字段);
但是不知道具体怎么做,这个语句只能针对存储过程还是一般的表都能用?怎么得到这个返回的值?
...全文
265 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hb19850302 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hanzs 的回复:]
SQL code

--不是针对存储过程的,是DML语句
declare
str varchar2(200);
begin
insert into table(a,b) values ('dd','ff') returning a into str; --返回字段a的值
dbms_output.put_line(str);
end;
[/Quote]

在c#代码里怎么获取最后的返回值 str?
yixilan 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhui22222 的回复:]
百度了一下,说是可以在插入语句后加上 returning (字段名)into (新字段);
但是不知道具体怎么做,这个语句只能针对存储过程还是一般的表都能用?怎么得到这个返回的值?
[/Quote]
其实就是返回插入的表的那个字段的值。
INSERT语句中,某个字段A的值,如果是'aaa',returning后的值也是aaa.
3楼的是对的,很好用。
hanzs 2011-08-23
  • 打赏
  • 举报
回复

--不是针对存储过程的,是DML语句
declare
str varchar2(200);
begin
insert into table(a,b) values ('dd','ff') returning a into str; --返回字段a的值
dbms_output.put_line(str);
end;
opps_zhou 2011-08-23
  • 打赏
  • 举报
回复
不知道你的需求是什么
什么叫返回一个自动生成的值?你要这个值用来干嘛?
难道你是想说 rowid ?
lbq794619111 2011-08-23
  • 打赏
  • 举报
回复
用存储过程或者函数吧,要不就不会有返回值。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧