Ces exemples présentent la DDL générée lorsque vous copiez des procédures
PL/SQL entre des bases de données hétérogènes.
La DDL générée est présentée sur la page Aperçu du fichier DDL dans l'assistant Coller des objets de base de données.
Le tableau 1 présente des exemples de la DDL générée pour la copie
des procédures PL/SQL d'une base de données source Oracle 11g vers une base de données cible DB2 Version 9.7 for Linux, UNIX,
and Windows.
Tableau 1. Exemples de copie des procédures PL/SQL d'une base de données Oracle
11g vers une base de données DB2 Version 9.7 for Linux, UNIX, and WindowsDéfinition de la procédure PL/SQL de la base de données Oracle 11g |
DLL générée pour la base de données DB2 Version 9.7 |
CREATE OR REPLACE PROCEDURE scott.sample_proc1
AUTHID DEFINER
AS
BEGIN
INSERT INTO detail_proc_insert
VALUES(1,'hello');
END;
/
|
CREATE PROCEDURE scott.sample_proc1
AUTHID DEFINER
AS
BEGIN
INSERT INTO detail_proc_insert
VALUES(1,'hello');
END scott.sample_proc1;
|
CREATE OR REPLACE PROCEDURE scott.sample_proc2
AUTHID DEFINER
AS
x NUMBER(9,2);
BEGIN
x := 65400;
END;
/
|
CREATE PROCEDURE scott.sample_proc2
AUTHID DEFINER
AS
x NUMBER(9,2);
BEGIN
x := 65400;
END scott.sample_proc2;
|
CREATE OR REPLACE PROCEDURE scott.sample_proc3
IS
detected EXCEPTION;
PRAGMA EXCEPTION_INIT(detected, -60);
BEGIN
null; -- some comment
EXCEPTION
WHEN deadlock_detected THEN
null; -- handling error
END;
/
|
CREATE PROCEDURE scott.sample_proc3
IS
detected EXCEPTION;
PRAGMA EXCEPTION_INIT(detected, -60);
BEGIN
null; -- some comment
EXCEPTION
WHEN deadlock_detected THEN
null; -- handling error
END scott.sample_proc3;
|
CREATE OR REPLACE PROCEDURE scott.sample_proc4
IS
num_tables NUMBER;
BEGIN
SELECT COUNT(*)
INTO num_tables
FROM dual;
IF num_tables < 1000 THEN
raise_application_error(-20101,
'Issuing message');
ELSE
NULL; -- comment
END IF;
END;
/
|
CREATE PROCEDURE scott.sample_proc4
IS
num_tables NUMBER;
BEGIN
SELECT COUNT(*)
INTO num_tables
FROM dual;
IF num_tables < 1000 THEN
raise_application_error(-20101, 'Issuing message');
ELSE
NULL; -- comment
END IF;
END scott.sample_proc4;
|
CREATE PROCEDURE scott.sample_proc5
IS
num_tables NUMBER;
dual_rec dual%ROWTYPE;
my_D emp.ename%TYPE;
BEGIN
SELECT COUNT(*) INTO num_tables
FROM dual;
END;
/
|
CREATE PROCEDURE scott.sample_proc5
IS
num_tables NUMBER;
dual_rec dual%ROWTYPE;
my_D emp.ename%TYPE;
BEGIN
SELECT COUNT(*) INTO num_tables
FROM dual;
END scott.sample_proc5;
|
Le tableau 2 présente un exemple de la DDL générée pour la copie d'une procédure
PL/SQL d'une base de données source DB2 Version
9.7 for Linux, UNIX, and Windows vers une base de données cible Oracle 11g.
Tableau 2. Exemple de copie de la procédure PL/SQL de la base de données DB2 Version 9.7 for Linux, UNIX,
and Windows vers la base de données Oracle 11gDéfinition de la procédure PL/SQL de la base de données DB2 Version 9.7 |
DDL générée pour la base de données Oracle 11g |
CREATE PROCEDURE OM2BSP13 (
v_idno NUMBER,
v_fname VARCHAR2,
v_dept NUMBER,
v_div NUMBER)
AS
BEGIN
INSERT INTO TBOMSP13 VALUES
(v_idno, v_fname, v_dept, v_div);
END;
|
CREATE PROCEDURE OM2BSP13 (
v_idno NUMBER,
v_fname VARCHAR2,
v_dept NUMBER,
v_div NUMBER)
AS
BEGIN
INSERT INTO TBOMSP13 VALUES
(v_idno, v_fname, v_dept, v_div);
END;
|