Informix 4GLからOracle PL/SQLへの移行
Ispirer Migration and Modernization ToolkitはInformix 4GLをOracle PL/SQL向けに変換することができます!ツールにはお客様の特別な要件を満たすためのカスタマイズを追加 することもできます。
Informix 4GLからOracle PL/SQLへの移行にIspirer MnMTKを使う理由
Ispirer Systemsの主な目標は、高度で一線級のアプリケーション移行を実行することです。移行ツールIspirer MnMTKは、様々な個別のビジネス要件に応えることができる費用対効果の高い製品です。
主な利点:
- 優れたテクニカルサポート:私たちの技術チームは、異なる複雑性の移行プロジェクトにおいて豊富な経験を持っています。
- 顧客志向のアプローチと迅速なカスタマイズ:修正、カスタム変換、最適化(ほとんどの要件は 1~2 日で対応)
- 検討段階での共同作業:お客様の検討期間中に変換のデモをお見せすることができます。
- 柔軟な価格設定:幅広いオプションを提供することができます。
- 最適化された変換:インテリジェントで保守しやすいコードを生成します。
変換後のソースの利用に特別なIspirerのミドルウェア等は必要ありません。
アセスメント
アセスメント作業は簡単ですぐに移行に要する作業とコストを見積もることができます。お見積に必要な情報は、下記のフォームを参照いただくと揃えることができます:
Ispirer移行ソリューションInformix 4GLからOracle PL/SQLへ リクエスト
変換機能
- Informix 4GLのファンクション (*.4gl) をPL/SQLのファンクション/
プロシージャ (*.sql)へ
Informix 4GL:
FUNCTION sample_func(s_char) #-------------------# define s_char CHAR(100), i SMALLINT, j SMALLINT, r_char CHAR(100) let r_char = " " FOR i = 1 TO 100 IF (s_char[i,i] = " ") THEN continue FOR ELSE let r_char = s_char[i,100] exit FOR END IF END FOR RETURN r_char END FUNCTION
Oracle PL/SQL:
FUNCTION sample_func(s_char IN CHAR) ---------------------# RETURN CHAR AS i NUMBER(5,0) := 0; j NUMBER(5,0) := 0; r_char CHAR(100) := ' '; BEGIN r_char := SUBSTRB(' ',1,100); FOR SWR_i IN 1 .. 100 LOOP i := SWR_i; IF (SUBSTRB(s_char,i,1)) THEN continue; ELSE r_char := SUBSTRB (SUBSTRB(s_char,i,101 - i),1,100); exit; END IF; END LOOP; RETURN r_char; END;
コメントの変換:
#Comment
Oracle PL/SQL:
--Comment
数行コメント
Informix 4GL:
{
Comments
}
Oracle PL/SQL:
/* Comments */
データ型の変換
Informix 4GL型 |
Oracle PL/SQLデータ型 |
char(length) |
CHAR(length) |
smallint |
NUMBER(5,0) |
integer |
NUMBER(10,0) |
date |
DATE |
decimal(n,m) |
NUMBER(n,m) |
レコードの変換
- id.*のようなレコード
Informix 4GL
define c0 record LIKE ctl_f0.*
Oracle PL/SQL:
c0 ctl_f0%rowtype;
レコードリストのレコード
Informix 4GL:
define w_just record b_yy INTEGER, b_mm INTEGER, b_dd INTEGER END record Usage: Let wjust.* = c0.*
Oracle PL/SQL:
TYPE SWT_w_just IS record(b_yy NUMBER(10,0), b_mm NUMBER(10,0),b_dd NUMBER(10,0)); w_just SWT_w_just; Usage: wjust := c0;
レコードリストの配列レコード
Informix 4GL:
define nbw array[4,60] OF record nb_g_kbn CHAR(1), nb_g_nymd CHAR(7) END record Usage: let nbw[1,i].*=nbw[4,i].*
Oracle PL/SQL:
TYPE SWT_nbw IS record(nb_g_kbn CHAR(1),nb_g_nymd CHAR(7)); TYPE SWT_nbw2 IS VARRAY(60) OF SWT_nbw; TYPE SWT_nbw3 IS VARRAY(4) OF SWT_nbw2; nb1w SWT_nbw3; Usage: nbw(1)(i) := nbw(4)(i);
組み込みファンクション、式、述語の変換
|
Informix 4GL型 |
Oracle PL/SQLデータ型 |
Asciiファンクション |
let a = ascii 223 |
a:= chr(223); |
Clippedファンクション |
let a = b clipped |
a:= RTRIM(b); |
Dateファンクション |
let a = date(b) |
a:= to date(b); |
Dayファンクション |
let a = day(b) |
a:= EXTRACT(day from b); |
Mdyファンクション |
let a = mdy(b,c,d) |
a := TO_DATE(TO_CHAR(b) || '-' || TO_CHAR(c) || '-' || TO_CHAR(d),'mm-dd-yy'); |
Monthファンクション |
let a = month(b) |
a := EXTRACT(month from b); |
Upshiftファンクション |
let a = upshift(b) |
SET a = UPPER(b) |
Usingファンクション |
let a = b using "######&" |
a := to_char(b,’9999990’); |
Yearファンクション |
let a = year(b) |
a := EXTRACT(year from b); |
Concat式 |
let a = b, “cd”,d |
a := b || “cd” || d; |
Mod式 |
let a = b mod 2 |
a := mod(b, 2); |
Substring式 |
let a = b[2,2] |
a := substr(b,2,1); |
True/False式 |
let a = true
let a = false
|
a := 1;
a := 0;
|
Matches述語 |
if (n not matches "[0123456789]") then |
if (not regexp_like(n,'[0123456789]')) then |
True述語 |
while(true) |
while(1 = 1) |
ビジネスロジックのステートメントの変換
- For range loop
Informix 4GL:
FOR i = 1 TO 10… … END FOR
Oracle PL/SQL:
FOR i IN 1..10 LOOP … END LOOP;
ケースステートメント
Informix 4GL:
CASE a WHEN 1 … WHEN 2 … otherwise … … END CASE
Oracle PL/SQL:
CASE a WHEN 1 THEN … WHEN 2 THEN … ELSE … … END CASE
カーソル宣言
Informix 4GL:
DECLARE cur_n0 cursor FOR SELECT n0_ch FROM nkin_a WHERE (n0_kau_no = s_kau_no) AND (n0_cd = s_cd)
Oracle PL/SQL:
cursor cur_n0 IS SELECT n0_ch FROM nkin_a WHERE (n0_kau_no = s_kau_no) AND (n0_cd = s_cd);
データベース移行については、InformixからOracleへのデータベース移行ページをご覧ください。
詳細はお問い合わせください。
|