Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis Informix 4GL vers Oracle PL/SQL!
Pourquoi Ispirer MnMTK?
Effectuez votre migration avec Ispirer Systems et profitez donc des avantages suivants que vous offre notre outil:
-
Cohérence et Intégration: automatisation jusqu'à 100%
-
Personnalisation rapide: individualisation et optimisation de la converson (1-3 jours ouvrables en moyenne)
-
Engagement pré-vente: nous démontrons une conversion complète au cours de l'évaluation avant que vous preniez une décision
- Prix Raisonnable: nous offrons une tarification souple
- Conversion Optimisée: en tant que résultat vous obtenez un code intelligent et maintenable, sans aucun middleware à utiliser après la conversion
Evaluation et Achat
L'évaluation de votre projet de migration permettra de mesurer les ressources nécessaires aussi bien que le coût de votre migration. Afin de faciliter ce processus, n'hésitez pas à remplir et nous envoyer en retour le questionnaire ci-dessous:
Ispirer Migration Solution
Informix 4GL vers Oracle PL/SQL Commander
Ispirer Migration Solution
Informix 4GL vers Oracle PL/SQL Service
L'outil
Caractéristiques de Conversion
Base de données Informix vers base de données Oracle:
- Tables et Données
- Convertit les définitions de colonnes – types de données, valeurs par défaut, contraintes NOT NULL
- Supporte les colonnes serial (instructions et déclencheurs sont générés en Oracle)
- Convertit les contraintes d’intégrité – clés primaires et étrangères, contraintes uniques et de validation
- Résout les conflits de mots réserves et d’identificateurs
- Transfère les données
- Indexes et Vues
Conversion de code Informix 4GL vers Oracle PL/SQL
- Convertit les fonctions Informix 4GL (*.4gl) vers les fonctions/procédures 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;
Convertit les commentaires:
Commentaires sur une seule ligne
Informix 4GL:
#Comment
Oracle PL/SQL:
--Comment
Commentaires Multilignes
Informix 4GL:
{
Comments
}
Oracle PL/SQL:
/*
Comments
*/
Convertit data types
Informix 4GL type |
Oracle PL/SQL data type |
char(length) |
CHAR(length) |
smallint |
NUMBER(5,0) |
integer |
NUMBER(10,0) |
date |
DATE |
decimal(n,m) |
NUMBER(n,m) |
Converts records
Record like id.*
Informix 4GL
define c0 record LIKE ctl_f0.*
Oracle PL/SQL:
c0 ctl_f0%rowtype;
Record with record list
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;
Array record with record list
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);
Convertit les fonctions built-in, expressions et prédicats
|
Informix 4GL type |
Oracle PL/SQL data type |
Ascii function |
let a = ascii 223 |
a:= chr(223); |
Clipped function |
let a = b clipped |
a:= RTRIM(b); |
Date function |
let a = date(b) |
a:= to date(b); |
Day function |
let a = day(b) |
a:= EXTRACT(day from b); |
Mdy function |
let a = mdy(b,c,d) |
a := TO_DATE(TO_CHAR(b) || '-' || TO_CHAR(c) || '-' || TO_CHAR(d),'mm-dd-yy'); |
Month function |
let a = month(b) |
a := EXTRACT(month from b); |
Upshift function |
let a = upshift(b) |
SET a = UPPER(b) |
Using function |
let a = b using "######&" |
a := to_char(b,’9999990’); |
Year function |
let a = year(b) |
a := EXTRACT(year from b); |
Concat expression |
let a = b, “cd”,d |
a := b || “cd” || d; |
Mod expression |
let a = b mod 2 |
a := mod(b, 2); |
Substring expression |
let a = b[2,2] |
a := substr(b,2,1); |
True/False expression |
let a = true
let a = false |
a := 1;
a := 0; |
Matches predicate |
if (n not matches "[0123456789]") then |
if (not regexp_like(n,'[0123456789]')) then |
True predicate |
while(true) |
while(1 = 1) |
Convertit les instructions de business logic
Par exemple,
For range loop
Informix 4GL:
FOR i = 1 TO 10…
…
END FOR
Oracle PL/SQL:
FOR i IN 1..10
LOOP
…
END LOOP;
Case statement
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
Declare cursor
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);
Contactez-nous pour en savoir plus.
|