ODP.NETのデータアクセス・チューニング:ODP.NETファーストステップ(3)(3/4 ページ)
Windowsプラットフォームにおけるアプリケーション開発は、.NETが主流となりつつある。本連載はVisual Basicから.NETへの移行を考えているOracleアプリケーション開発者に向けて、「Oracle Data Provider for .NET」を使うメリットや独自機能、新しいプログラミング・スタイルなどを解説する。(編集局)
PL/SQL配列を利用する方法
ストアドプロシージャを利用してデータベース・ラウンドトリップを減らす方法として、PL/SQL配列(以前はPL/SQL表と呼ばれていました)を利用する方法があります。例えば以下のようなデータをemployeeテーブルに3行追加したい場合には、Oracleデータベースに対してInsertを3回実行するため、データベース・ラウンドトリップも3回発生します。
employeeid | employeename | salary |
---|---|---|
10001 | Scott | 11000 |
10002 | Billly | 12000 |
10003 | Jhon | 13000 |
表1 employeeテーブル |
PL/SQL配列を使用すると、複数の行を1回のデータベース・ラウンドトリップで追加することが可能です。以下にPL/SQL配列の使用方法を説明します。
手順1
テスト用のテーブルを作成します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
手順2
PL/SQL配列で1度に書き込みを行うためのパッケージを作成します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
手順3
ストアドプロシージャにPL/SQL配列を値として渡すコードは以下になります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
以上のように、OracleParameterオブジェクトのCollectionTypeプロパティをPLSQLAssociativeArrayと指定することにより、プログラムで確保した配列の値をデータベース・サーバのPL/SQL配列に1回のデータベース・ラウンドトリップで渡すことが可能です。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.