29歳、離婚しました。

家事は元妻にまかせっきり。そんな生活力ゼロ男の離婚後の生活を綴ったブログです。著者がその後の生活の中で見つけた生活術やお役立ち情報をお届けします。

PowerShellを使ってOracleのSQLの実行結果を取得する簡単な方法

   

PowerShellを使ってOracleのSQLを実行し、結果を取得したい!

Windows Server上にインストールしたOracleデータベースに対し、PowerShellを使って何らかのSQLを実行。
そして、その結果を取得したい!という場合があります。

これはもちろん可能であり、いくつかの方法で対応することが可能です。
今回はその中でも、特にシンプルかつ簡単にOracleのSQLを実行し、その結果を取得する方法をご紹介します!

はじめに

これからご紹介する方法では、PowerShellとSQL*Plusを組み合わせて使用しています。

手元にあったWindows Server 2012R2 Standard Edition上にインストールされていた、Oracle Database 11g Release 11.2.0.4.0で動作確認を行い、正常に動作することを確認しています。

またSQL*Plusを使用した操作であるため、他のバージョンのWindows、Oracleでも正常に動作する可能性が高いと思われます。
ですがもし正常に動作しない場合は、問題箇所を修正してお使いください。

PowerShellを使ってOracleのSQLを実行し、結果を取得する方法

先にも書いたとおり今回ご紹介する方法では、PowerShellとSQL*Plusを組み合わせて使用します。
そして、PowerShell上で以下のような形式でコマンドを実行し、結果を取得します。

たとえばOracle上のすべてのユーザーのうち、先頭がSYSで始まるユーザー名の一覧を取得。
その結果をPowerShellの$result変数に格納したい場合は、以下のようなコマンドを実行します。

上記コマンドを見ていただければ分かるとおり、実行したいSQLをSQL*Plusを使って実行し、その結果をPowerShellの変数で受け取るという、とってもシンプルな方法です。

$result変数に格納された内容は、以下コマンドを実行することでファイル出力が可能です。

ファイルには以下のような内容が出力されており、結果文字列が正しく取得できていることが分かります。

※本来は上記ファイル内容の先頭に1行空行が入りますが、分かりづらいため削除して掲載しています。

先のコマンド操作により$result変数に取得した結果は、配列形式で格納されています。
そのため以下コマンドにより、$result配列変数の15番目の要素の値を確認すると、SYSMANという文字列が取得できます。

※実際の$result配列の要素0(1番目の要素)には空行部のデータが入っており、15番目の要素にSYSMANという文字列が格納されています。

以上を参考に、PowerShellを使ってOracleのSQLの実行結果を取得してみてくださーい!

 - Windows, デジタル・家電

ピックアップ コンテンツ&スポンサーリンク