Skill Note

平凡なエンジニアがメモ代わりにプログラミング, インフラ, ネットワークを書き綴るブログ

[Oracle]OracleからWebサービスを利用する方法

      2014/11/09

oracle

SOAPリクエストを送信してレスポンスを表示する

前回はOracleからWebサイトにアクセスする方法を記載しましたが、今回はOracleからSOAP形式のWebサービスを利用する方法を記載します。

ACL設定まではWebサイトにアクセスする方法と同じですので、前回の記事を参考にしてください。

SOAPメッセージの作成 

SOAPリクエストを送信するには、受け取る側のWebサービスが必要ですので、
http://www.webservicex.net/GlobalWeather.asmxサービスを使って記載していきます。

Webサービスのインターフェイスを確認する為に、WSDLを参照します。
このWSDLの定義に従ってSOAPメッセージを作成します。
http://www.webservicex.net/globalweather.asmx?wsdl

WSDLを参照しながらSOAPメッセージを作成するのは難しいと思いますので、そんな場合はSOAP UIなどのツールでひな形を作成することをお勧めします。

SOAPリクエストの送信 

PL/SQLからGetCitiesByCountryのSOAPアクションを呼び出す場合。

 PL/SQLからGetWeatherのSOAPアクションを呼び出す場合。

正常に処理された場合は200のステータスコードとともにSOAPレスポンスが返ってきます。
値を取り出したい場合は、レスポンスのSOAPメッセージをパースして取り出します。

 

 

Google AdSense PC

Google AdSense PC

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

oracle
[Oracle]端数処理、丸めの方法

ORACLEで数値の端数処理、数値丸めをする 数値を四捨五入する場合は、ROUND関数数値を切り捨てる場合は、TRUNC関数各関数の第2引数の値で、小数部、また …

oracle
ODP.NETをNuGetからインストールする

ODP.NETのインストール手順 Oracle 12cから公式のODP.NETがNuGetに追加されました。 この記事ではODP.NETをNuGetからインスト …

sqlserer
[SQL Server]データを期間別に集計する

SQL Serverで集計表を出力 日付をDATETIME型で管理している場合、CONVERT関数、DATEPART関数を使って、日、週、月、年別の集計結果を出 …

sqlserer
[SQL Server]クロス集計の方法

PIVOTを使ってクロス集計する SQL ServerでExcelのピボットテーブルのようなクロス集計をするには、PIVOT関係演算子を使って集計することができ …

db
[Database]データベースのバージョン/エディションを確認する方法

OracleとSQLServerのバージョン/エディションを確認 Oracle

SQLServ …

oracle
[Oracle]データベースを再構築してOracle Expressのキャラクタセットを変更する

前回の記事でCSALTERを使用したキャラクタセットの変更方法を記載しましたが、サブセットのキャラクタセットからスーパセットへの変更のみ可能でした。 この記事で …

sqlserer
[SQL Server]再帰SQLで集計する

WITH(共通テーブル式)を使って集計する WITH句とは 共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、CR …

oracle
Oracle 11g XEへのデータ移行方法を検討してみる

Oracleのデータ移行時は移行元と移行先の文字コードに注意する必要があります。 Windows環境のOracleでは「JA16SJIS」や「JA16SJIST …

oracle
[Oracle]CSALTERを使用してOracle Expressのキャラクタセットを変更する

Oracle Expressでは標準のキャラクタセットとしてAL32UTF8が設定されます。キャラクタセットを意識しないでデータベースの移行やデータベース間のデ …

oracle
Oracle12cでユーザを作成する方法

SQLコマンドを使用したユーザ作成 Oracle12cからマルチテナント・アーキテクチャが採用されており、以前までの手順ではユーザが作成できません。 ここではP …