Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment diviser les instructions SQL Oracle pour ADO.NET

Sans le DDL, vous pourriez créer un bloc PL/SQL anonyme en entourant les instructions avec BEGIN et END :

BEGIN
  INSERT INTO foo (bar) VALUES('one');
  INSERT INTO foo (bar) VALUES('two');
END;

Pour effectuer DDL (comme CREATE TABLE), vous devez utiliser du PL/SQL dynamique :

BEGIN
  EXECUTE IMMEDIATE 'CREATE TABLE foo (bar VARCHAR2(100))';
  EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'one';
  EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'two';
END;

Les INSERTS sont également dynamiques, car la table n'existe pas avant l'exécution du bloc et sa compilation échouerait donc.

REMARQUE :Il s'agit d'une exigence inhabituelle :les applications ne doivent normalement pas créer de tableaux !