Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como dividir instruções Oracle sql para ADO.NET


Sem o DDL, você poderia criar um bloco PL/SQL anônimo envolvendo as instruções com BEGIN e END:
BEGIN
  INSERT INTO foo (bar) VALUES('one');
  INSERT INTO foo (bar) VALUES('two');
END;

Para executar DDL (como CREATE TABLE), você precisaria 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;

Os INSERTS também são dinâmicos, pois a tabela não existe antes de executar o bloco e, portanto, falharia ao compilar.

NOTA:Este seria um requisito incomum:os aplicativos normalmente não devem criar tabelas!