業界トップクラスのデータベースエキスパート集団

株式会社アクアシステムズ

Tibero RDBMS 5検証
第7回「Tibero 5の検証:PL/SQL、Pro*C」

 Tibero RDBMS 5検証

update:

第7回「Tibero 5の検証:PL/SQL、Pro*C」

著者:金永昊

Oracleの互換性検証(PL/SQL)

TiberoとOracle両方のデータベースに接続し、同じPL/SQLコードを用い、ストアド・オブジェクト(プロシージャ、パッケージ、ファンクション)を作成およびコンパイルし、PL/SQLブロックを実行して問題なく実行できるかどうか、処理結果が一致するかどうかを検証します。

※Tiberoには、Oracle PL/SQLに似ているtbPSM(Tibero Persistent Stored Module)というプログラム言語があります。このtbPSMは、Oracle PL/SQLコードを使用してストアド・オブジェクトを作成したり、コンパイルしたり、実行(呼び出し)したりすることができます。


検証の流れ

1) TiberoとOracle両方のデータベースに接続し、用意したPL/SQLコードを実行する。

・EXAMPLE1:LOOP, CLOB DATA, CURSOR, EXCEPTION, FORALLを使用
・EXAMPLE2:STORED PACKAGEの作成と実行
・EXAMPLE3:TRIGGERの作成と実行
・EXAMPLE4:Dynamic SQLを含めたストアド・ファンクションの作成と実行
・EXAMPLE5:PL/SQL コレクション型(連想配列、可変サイズの配列-VARRAY)の作成と実行
・EXAMPLE6:ユーザー定義(CREATE TYPE文でコレクション型を定義)

2) 1)を実行してエラーが発生するかどうか、出力結果が一致するかどうかを確認する。


検証の結果

・EXAMPLE1: LOOP, CLOB DATA, CURSOR, EXCEPTION, FORALL
結果:問題なく両方とも同じ結果になりました。


・EXAMPLE2: STORED PACKAGE 作成と実行
結果:問題なく両方とも同じ結果になりました。


・EXAMPLE3: TRIGGERの 作成と実行
結果:問題なく両方とも同じ結果になりました。
(データを更新すると、すべてのSAL列の平均金額が表示されること)


・EXAMPLE4: Dynamic SQLを含めたストアド・ファンクション作成と実行
結果:問題なく両方とも同じ結果になりました。


・EXAMPLE5:PL/SQL コレクション型(連想配列、可変サイズの配列-VARRAY)の作成と実行

 結果:問題なく両方とも同じ結果になりました。

・EXAMPLE6:ユーザー定義(CREATE TYPE文でコレクション型を定義) 結果:CREATE TYPE文は未サポートのため、できませんでした。


Oracleの互換性検証(Pro*C)

TiberoとOracle両方のデータベースに接続し、同じPro*Cソースコードで埋め込みSQLのプログラムを作成し、プリコンパイルし、プリコンパイルしたCソースファイルをコンパイルし、作られた実行可能ファイルを実行して問題なく実行できるかどうか、実行結果が一致するかどうかを検証します。

※TiberoのtbESQLは、Oracle Pro*Cに似ていてESQL(Embedded SQL: 埋め込みSQL)の使用のためにTiberoが提供するインターフェースです。Cプログラミング言語のためのESQLインターフェースをtbESQL/Cと呼びます。このtbESQL/Cは、Oracle Pro*Cソースコードで埋め込みSQLのプログラム(tbESQL/Cプログラム)を作成ができ、Cプログラミング言語のソースコードに変換するプリコンパイラでもあります。


Pro*C検証の流れ

1) TiberoとOracle両方のデータベースに接続して環境設定後、用意したOracle Pro*Cプログラムをプリコンパイルし、プリコンパイルされたCファイルをコンパイルし、作られた実行可能ファイルを実行する。
・EXAMPLE1:DDL文、DML文
・EXAMPLE2:複数のホスト配列、PL/SQLストアド・パッケージのプロシージャをコールする。

2) 1)を実行してエラーが発生するかどうか、出力結果が一致するかどうかを確認する。


Pro*Cの検証結果

結果:問題なく両方とも同じ結果になりました。

EXAMPLE2プログラムをプリコンパイルする際に、ホスト変数の宣言文の一部でプリコンパイルエラーが出ました。「EXEC SQL TYPE ~ VARCHAR2」というユーザー定義型(コレックション)を作る文でバグが見つかりました。バグ見つかるも3日でパッチが提供されて解決できました。


業界トップクラスのデータベースエキスパート集団
アクアシステムズ

データベースに関するすべての課題、トラブル、お悩みを解決します。
高難易度、複雑、他社対応不可案件など、お気軽にご相談ください。