Existe-t-il un équivalent Oracle à OUTPUT INSERTED de SQL Server?

Dans SQL Server, vous pouvez faire des choses comme ceci:

INSERT INTO some_table (...) OUTPUT INSERTED.*
VALUES (...)

De sorte que vous pouvez insérer arbitraire des ensembles de colonnes/valeurs et obtenir ces résultats. Est-il un moyen de le faire dans Oracle?

Le mieux que je puisse vous arriver, c'est ça:

INSERT INTO some_table (...)
VALUES (...)
RETURNING ROWID INTO :out_rowid

...à l'aide de :out_rowid comme une liaison variable. Et puis, à l'aide d'une deuxième requête comme ceci:

SELECT *
FROM some_table
WHERE ROWID = :rowid

...mais ce n'est pas tout à fait le même qu'il y retourne tout à l'intérieur de la colonne, et pas seulement les colonnes, j'ai inséré.

Est-il une meilleure façon de le faire sans l'aide de beaucoup de PL/SQL et de préférence avec une seule requête?

source d'informationauteur Jason Baker