SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(12)
Oracleデータベースの操作2

データを更新する

 次に既存のデータを更新する方法について説明します。

 まずは、データセットからデータの変更対象となるレコードを取得します。レコードの取得はデータテーブルが持つSelectメソッドを使用します。

 Selectメソッドの引数には、データ取得条件を指定します。たとえば、EMPNOが1234のレコードを取得するには

リスト7
$dtRows = $dtSet.Tables[0].Select("EMPNO='1234'")

のようにします(図3)。


図3 条件によるレコードの選択

 条件によっては、データは複数件返されることがあるため、代入先の変数は配列となります。

 変更対象のレコードを取得したら、実際にデータの変更を行います。

 変数は配列オブジェクトになっているため、変更対象のレコードは要素番号を指定する必要があります。最初のレコードを変更対象とする場合には、要素番号は0となります。

 リスト8は、取得した1件目のレコードのJOBとMGRを変更します。

リスト8
$dtRows[0]["JOB"] = "ANALYST";
$dtRows[0]["MGR"] = "7566";

 取得したデータの変更を行うと、データセットのテーブルにも反映されます(図4)。

 このデータセットをデータベースに反映させるには、データを追加するときと同様にデータアダプタのUpdateメソッドを実行します。

リスト9
[void]$oraDa.Update($dtSet)


図4 変更したデータはデータセットに反映される

データを削除する

 最後に既存のデータを削除する方法について説明します。

 データを削除するには、データを更新するときと同様に、データテーブルが持つSelectメソッドで対象のレコードを取得します。たとえば、EMPNO が "1234" を削除対象とする場合は

リスト10
$dtRows = $dtSet.Tables[0].Select("EMPNO='1234'")

とします。

 取得したレコードデータは配列オブジェクトになっているため、foreachを使用して1件ずつ削除を行います(リスト11)。

リスト11
foreach ( $dtRow in $dtRows )
{
    $dtRow.Delete()
}

 最後に Updateメソッドを実行し、データセットに反映した結果を、データベースへ反映させます。

まとめ

 今回はOracleデータベースへのデータの追加、変更、削除について説明しました。

 Oracleを対象にしてデータベースの操作方法を説明しましたが、SQL ServerやMySQLなども同様の手順で操作することができます。ぜひ、普段操作しているデータベースでも、同様に試して頂ければ幸いです。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4066 2009/07/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー