Équivalent de IF EXIST en PL/SQL
Bonjour,
En faisant des recherche, je suis tombé sur cette page :
https://forums.oracle.com/forums/thr...hreadID=319710
J'ai décidé d'appliquer la dernière proposition postée malheureusement je n'est pas l'impression que mon IF fonctionne ! J'ai toujours une erreur si la table existe déjà.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| -- Create Package
CREATE OR REPLACE PACKAGE pkg IS
-- Create Table
PROCEDURE create_table (p_table_name IN VARCHAR2 );
END;
/
CREATE OR REPLACE PACKAGE BODY pkg IS
PROCEDURE create_table ( p_table_name IN VARCHAR2) IS
l_table_name VARCHAR2(30);
l_test NUMBER;
BEGIN
l_table_name := dbms_asset.simple_sql_name(p_table_name);
EXECUTE IMMEDIATE 'SELECT count(table_name) FROM tabs WHERE upper(table_name) = upper(' || l_table_name || ')' INTO l_test;
IF l_test = 0 THEN
EXECUTE IMMEDIATE 'CREATE TABLE ' || l_table_name || ' AS SELECT * FROM v$session';
END IF;
END;
END; |
Merci d'avance