sql >> Base de Datos >  >> RDS >> Oracle

Cómo dividir sentencias Oracle sql para ADO.NET

Sin el DDL, podría crear un bloque PL/SQL anónimo al rodear las declaraciones con BEGIN y END:

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

Para realizar DDL (como CREAR TABLA) necesitaría usar PL/SQL dinámico:

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;

Los INSERTOS también son dinámicos, ya que la tabla no existe antes de ejecutar el bloque y, por lo tanto, no se compilaría.

NOTA:Este sería un requisito inusual:¡las aplicaciones normalmente no deberían crear tablas!