オラクルクラウドデータベースからエクセルにデータを読み込む

大切なデータはどこに保管してますか。
私はクラウド(ストレージ)に保管しており、昔みたいにUSBとかCDということはなくなりました。
そこで本日はデータベースの扱いに適したオラクルクラウドの自律型データベースに保存してあるデータを読み込んできます。
データベース接続をするためにOracle Clientソフトウェアをコンピュータにインストールします。
https://www.oracle.com/jp/database/technologies/instant-client/downloads.html
にて適切なものをダウンロードします。

本日はwindows10にInstant Client for Microsoft Windows (x64)のリンクをクリックしBasic PackageとODBC Packageの2つをダウンロードしました。
バージョンは同じにすべきでしょう。
前者はOCI、OCCI、およびJDBC:OCIアプリケーションの実行に必要なすべてのファイルが含まれており、後者はODBCアプリケーションを有効にするための追加ライブラリです。

Oracle ClientのODBCドライバのインストールをします。
ダウンロードしたファイルを解凍すると同じ名前のフォルダが作成されます。つまり2つのファイルBasic PackageとODBC Packageの内容を同じフォルダ(instantclient_19_6)にまとめます。
例はinstantclient_19_6というフォルダをcドライブにoracleというフォルダを作成し、そこに移動します。ここである必要はございません。


スタートを右クリックしてシステムを選択します。


下にスクロールするとシステム情報があるはずなのでそれをクリック。


次に出たウインドウのシステムの詳細設定をクリック。


この画面で詳細設定タブにある環境変数を設定することになります。


環境変数のウインドウの下段にあるシステム環境設定にあるpathの行を選択して編集をクリックします。上段のユーザー環境変数でもOKです。

使用するロケールに必要なOracleグローバル変数を設定します。
変数名にNLS_LANGを、変数値にJAPANESE_JAPAN.JA16EUCを入力します。

次にTNS_ADMIN環境変数を設定します。
tnsnames.oraというファイルの中の記述の一部を指定することになりますが、このファイルについては下記のURLにて記載してあります。
https://minokamo.tokyo/2020/03/28/599/
ダウンロードしたファイルはZIP形式になっており中身に次のものが含まれております。
cwallet.sso、tnsnames.ora、readme.md、truststore.jks、ojdbc.properties、sqlnet.ora、ewallet.p12、keystore.jks
となります。
今回は上記のファイルをC:\oracle\Wallet_DBというフォルダを作成しコピーしました。

次にコマンドプロンプトにて次のコマンドを打ちます。
この例はodbc_install.exeがCドライブの下のoracleというフォルダのさらに下にあるinstantclient_19_6というフォルダに存在するからにほかありません。

cd C:\oracle\instantclient_19_6
odbc_install JA

Oracle ODBC Driver is installed successfully.
と表示されれば成功です。

Oracle ODBC Driver with same name already exists.
と表示されたら。
同じドライバはないはずなんですけど。
こうなった時はコマンドプロンプトを右クリックして「その他→管理者として実行」にて起動しましょう。

次にodbcデータソースアドミニストレーターにてドライバがインストールされたか確認します。当初は間違えて32bit版にて作業し、さらにはmicrosoft odbc for oracleを選択してたので下記のエラーに悩まされました。

Oracle(tm)クライアントとネットワーク コンポーネントが見つかりません。これらのコンポーネントは Oracle Corporation から提供され、Oracle Version 7.3(またはそれ以降) のクライアント ソフトウェアの一部としてインストールされます。
このドライバーを使用するには、これらのコンポーネントを先にインストールしてください。

自分が設定したものは64bitのものでした。
odbcデータソースアドミニストレーター64bitを実行します。
追加ボタンをクリックします。


追加ボタンをおすと最初はなかったoracle in instantclientが追加されてました。


完了をおして設定を続けます。
odbcドライバ構成画面にてデータソース名は任意の名前を、説明は省略可能。
TNSサービス名はAutonomous Databaseの記事(https://minokamo.tokyo/2020/03/28/599/)に記載した資格証明書のtnsnames.oraの内容のどれかを記述、ユーザーIDはadminを記述します。adminはAutonomous Databaseの作成の時に出てきました。

本当に接続可能なのか確認するため、「接続テスト」をクリックしましょう。
パスワードもまたAutonomous Databaseの作成の時に決めましたのでこれを入力します。

正常に接続できました。


テストが成功しましたのでOKをクリックしてこの接続を保存します。

このデータソースがあればエクセルやアクセスにてodbc接続をしてオラクルクラウドのAutonomous Databaseからデータを読み込むことができるはずです。
エクセルでデータの取得からODBCを選択し、先ほど作成した接続をクリックします。

「OK」をクリックし、ODBC接続を完了させ、ナビゲーター画面に目的のものが表示されるのを待ちます。

プレビューを確認し、これでよければ「データの変換」をクリックします。

Power Query エディターが表示されますが特に編集することはなかったので、閉じて読み込むことにしました。

東証に上場するすべてのデータで、4000以上の行数ありますので多少時間はかかります。2020年8月14日のデータとなります。

教育

Posted by admin