如何在insert语句后返回identity的值

时间:2013-11-27 20:02:09

标签: .net sql oracle oracle11g

我在插入语句后返回标识值时遇到问题。

我必须通过OracleCommand的ExecuteScalar返回此值。我正在使用此查询:

SET serveroutput ON
DECLARE
    returnId INT;
BEGIN
    INSERT INTO Table (
        Text
    ) VALUES (
        :Text
    ) RETURNING Id INTO returnId;

    DBMS_OUTPUT.PUT_LINE(returnId);
END;

结果:

anonymous block completed
47

我相信这个值应该在一个列中返回,所以我可以使用OracleCommand的“ExecuteScalar”来获取它。

如何仅以列格式返回“47”?

1 个答案:

答案 0 :(得分:0)

试试这个:

SET serveroutput ON
DECLARE
    returnId INT;
BEGIN
    INSERT INTO Table (
        Text
    ) VALUES (
        :Text
    ) RETURNING Id INTO returnId;

    SELECT returnId INTO ReturnId FROM DUAL;
END;