OracleでXMLを活用する
XSQLプログラミング入門
第2回 XSQLタグの機能を使う
(3/4ページ)
Dataを挿入または変更するときに使用するXSQLタグ <xsql:dml>, <xsql:include-owa>,<xsql:insert-request>, <xsql:insert-param> |
今度は、XSQLプログラムを通してデータベースにデータを変更したり、ストアドプロシージャを呼び出す方法について説明します。
■INSERT文を実行する
データを挿入するのには<xsql:dml>が一番手っ取り早い方法です。
データを挿入する<?xml version='1.0' encoding="Shift_JIS"?> |
このXSQLを"p_empno=1501", "p_ename=二宮博之", "p_job=Analyst", "p_mgr=50", "p_sal=3000", "p_comm=NULL", "p_deptno=30"のような引数で呼び出すことで「二宮博之」さんのレコードが入社日が本日づけで挿入できます。
■ストアドプロシージャを実行する
また、次のようなストアドプロシージャをつくることによっても同様にデータベースに新規レコードを挿入することができます。
データを挿入するストアドプロシージャCREATE PROCEDURE INSERT_EMP |
この場合はXSQL側で以下のようにストアドプロシージャーを呼び出します。
ストアドプロシージャの実行<?xml version='1.0' encoding="Shift_JIS"?> |
しかし、ここで疑問が残ります。どのようにしてユーザーやプログラマーはデータ挿入や更新がうまくいったことを知ればいいのでしょうか?まず、先ほどの「二宮博之」さんのレコードをもう一度挿入してみることにします。すると以下のようなエラーがでます。これをXSLT側で取り扱ってクライアント側に表示すればいいのです。
出力されたエラー<?xml version="1.0" encoding="Shift_JIS"
?> |
もうすこしカスタムなエラー・例外処理をしたい場合は、<xsql;include-owa>タグを使用することが必要です。このタグを使用するにあたってデータベースはOracle 8iでなければなりませんし、データース側にOWAパッケージがインストールされている必要があります(OWAとは、PL/SQLカートリッジを使用するためにデータベース側にインストールする拡張パッケージです)。
OWAパッケージを利用したストアドプロシージャ
|
このようなPL/SQL OWAパッケージを使用したプロシージャーは、以下のようなXSQLで呼び出すことにより、UNIQUE列の重複があった場合やその他のエラーの場合にカスタマイズされたメッセージをXML文書上に出力して、その対応をXSLT側でこなせるようになります。
ストアドプロシージャを実行するXSQL文書
|
■Webフォームからデータ入力する(1)
つぎは<xsql:insert-request>タグについてです。このタグを利用すると、Webブラウザからのデータを利用して、データをデータベースへ挿入していくことができます。
このタグを使用するにはXSLTの知識が多少必要です。まずは、このこのタグの引数を紹介しましょう。
引数名 | 引数値 | 役割 |
table | 表名 | データベースの表の名前(ビューやシノニムでも構いません)。 この引数は必須です。 |
date-format | 文字列 | DATE型の表記を指定する引数です。詳しくはjava.text.SimpleDateFormat.をご覧になってください。 |
transform | URL | 挿入する前にXMLデータが<ROWSET><ROW>の標準型になっている必要があります。その変換をするXSLTスタイルシートを指定します。 |
以下が実際に<xsql:insert-request>タグを使ったプログラム例です。
<xsql:insert-request>タグのプログラム例
|
引数transformには、スタイルシートが指定されていた点にお気づきでしょうか。そのスタイルシートを次に示します。
スタイルシートの例
|
この方法はPOSTメソッドでしか使用できませんので次のようなHTML文書から呼ぶのが適切です。
Webフォームの例
|
このフォームから入力された内容がデータベースに挿入されるわけです。 <xsql:insert-request>タグでは、テキストフィールドやラジオボタンやプルダウ ンメニューなど自由な形式のWebフォームからデータを挿入することができます。
■Webフォームからデータを入力する(2)
最後に<xsql:insert-param>について説明します。例えば、
<html> |
のようなWebフォームから、XML構造上正しいXML文書、例えば
入力するXML文書<EMPLOYEE> |
のように記入し適切なXSLTファイルと組み合わせることによって
XML文書に組み合わせるXSLT<ROWSET xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
実行するXSQLプログラム<?xml version='1.0' encoding="Shift_JIS"?> |
レコードを挿入することができます。
ここまでで、すべてのデータ挿入、更新に関するXSQLタグを紹介しました。次は、これ以外のタグについて紹介しましょう。
目次 |
1ページ 主要XSQLタグの概要 XML形式への出力言語 DataをDBから取り出すときに使用するXSQLタグ XSQLでデータベースを検索する 引数を用いた動的な検索 2ページ 動的な検索も可能に 該当レコードがないときに実行される文 カーソルの扱い オブジェクトデータの取り扱い 3ページ Dataを挿入または変更するときに使用するXSQLタグ INSERT文を実行する ストアドプロシージャを実行する Webフォームからデータ入力する(1) Webフォームからデータ入力する(2) 4ページ 他のXML文書やXSQL出力をインポートするタグ その他の便利なXSQLタグ HTTPパラメータを処理する パラメータの設定 セッションの設定 クッキーの設定 スタイルシートに実行結果を渡す |
「連載 XSQLプログラミング入門」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|