Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Oracle: Was ist "Insert into Returning into" ?

  Alt 8. Jun 2007, 10:22
Zitat von Phoenix:
Warum auch? Wenn ich so spezialdinger benutze bin ich nicht mehr flexibel genug um später kurz die DB auszutauschen, und das könnte hier sogar irgendwann nötig werden.
Dieses "Spezialding" hat seine Entsprechung in jedem besseren DBMS.
In SQL2005 heißt es Output[1] und gibt leider keine Parameterwerte sondern eine Ergebnismenge zurück.
In Firebird2 heißt es ebenfalls Returning[1] und funktioniert wie im SQL server, sieht aber wie in Oracle aus.
Es ist die Aufgabe jedes noch so kleinen ORMs das wegzuabstrahieren.
Denn ohne Returning/Output würde man ja die ID des neuen Datensatzes nicht kennen.
Oder man müsste in MSSQL auf das abartig lahme @@IDENTITY zurückgreifen.

[1]
SQL-Code:
INSERT INTO SomeTable
OUTPUT Inserted.Id
(SomeField)
VALUES
(@SomeField)
[2]
SQL-Code:
INSERT INTO SomeTable
(SomeField)
VALUES
(:SomeField)
RETURNING Id
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat