2013-11-27 5 views
0

У меня возникла проблема с возвратом значения идентификатора после инструкции insert.Как вернуть значение идентификатора после инструкции insert

Я должен вернуть это значение с помощью ExecuteScalar OracleCommand. Я использую этот запрос:

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 

Я считаю, что значение должно быть возвращено в колонке, так что я могу получить его с «ExecuteScalar» из OracleCommand.

Как вернуть только «47» в формате столбцов?

ответ

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; 
+0

Привет, я получил следующее сообщение об ошибке: «PLS-00428: INTO пункта, как ожидается, в этом ЗЕЬЕСТ» –

+0

Попробовать сейчас. Это вернет столбец с именем ReturnId. Вы можете переименовать его во что угодно. –

+0

Я использую внутри блока «начало/конец». –

Смежные вопросы