System.Data.OracleClient で、PL/SQL が書かれたテキストを実行して、
通常 SQL だけでは不可能な、INSERT 時の更新データの取得を行います。
1) シーケンスによってセットされた値
2) 関数によってセットされた値
3) ROWID の値
というか、PL/SQL の変数部分は、こちら側でバインドすると
その変数を定義して実行してくれた上、変数の内容が戻されるので、
面倒は面倒ですが、PL/SQL の恩恵を殆ど利用できます。
プログラマレベルで行う処置としては危険なので、
システム管理者が許してくれるとは思えないですけど・・・。