繁体   English   中英

oracle中插入和返回值

[英]Insert and return value in oracle

我需要在一个查询中插入并返回主键,这可能吗? 原因是主键是自动递增的,所以我不知道它是什么。

insert into Person(name) values ('Radouane')

选择 PersonId :我插入的当前 ID。

谢谢,

RETURNING INTO子句正是您所需要的:

SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  l_id person.PersonId%type;
BEGIN
  INSERT INTO person ( name ) VALUES ( 'Radouane' ) 
    RETURNING id INTO l_id;
  DBMS_OUTPUT.PUT_LINE( 'Returning ID value is : '||l_id );
END;
/

将“id”替换为您的主键列,将“l_id”替换为您想要放入值的变量。

互联网上有很多示例。 请注意,仅限于 PL/SQL,不能在 SQL 中使用。

你可以试试这个例子:

DECLARE
   strlen   NUMBER;
BEGIN
   INSERT INTO myemp(ename) values('emp-name')
   RETURNING LENGTH(ename) INTO strlen;
   DBMS_OUTPUT.PUT_LINE(strlen);
END;
/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM