スポンサーリンク
スポンサーリンク

ASP.NET Core Web APIとストアドプロシージャで実装するシンプルで高速なDBトランザクション処理(on ORACLE)

.NET CoreASP.NET CoreC#OraclePL/SQLSwaggerVisual StudioWeb APIデータベース

.Net 6.0 の ASP.NET Core Web APIから、Dapper+Oracle.EntityFrameworkCore NuGetパッケージを使い、ORACLEデータベースのストアドプロシージャ(PL/SQL)を使用する場合の、DBトランザクション処理を行うサンプルを作成しました。
ソースコードはGitHubで公開しています。

 

ソースコード構成

ASP.NET Core Web APIで実装するシンプルで高速なDBトランザクション処理(on ORACLE) で作成したソースコードに、下記の修正を加えました。

 

ソースコード変更内容を解説

/SQL/SQL_TableA.cs

C#側に定数として持っていた、Select文、Insert文をストアドプロシージャ側へ移したので、C#側のSQL文は削除し、Dapperにはストアドプロシージャ名を渡すように変更。

 

ストアドプロシージャ定義

C#から呼び出しているストアドプロシージャの実装内容は、C#側に定数として持っていた、Select文、Insert文をそのままストアドプロシージャ(PL/SQL)へ移しています。
※SQLをストアドプロシージャ側に纏めると、C#側のソースコードはシンプルになり、SQL実行時にORACLEがSQLの実行プランを毎回解析する必要はなくなり、処理コストを少なくできます。
ストアドプロシージャをの作り方は ORACLEのストアドプロシージャを SQL Developerで作成する手順 を参照下さい。

コメント

タイトルとURLをコピーしました