Duvida - Oracle - Script para alterar tabela

2 respostas
Z

Galera preciso fazer um script que limpe o banco de dados e adicione mais duas colunas no Oracle .
Eu faco isso por meio de transacao , porem quando eu coloco Alter table dentro do script ele gera um erro . Alguem sabe porque?

begin 

DELETE FROM USERS;
ALTER TABLE USERS ADD (SOBRENOME varchar2(20));

commit;
end;
Da o seguinte erro:
RA-06550: line 27, column 1:
PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:

   begin case declare end exception exit for goto if loop mod
   null pragma raise return select update while with
   <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> << close current delete fetch lock insert
   open rollback savepoint set sql execute commit forall merge
   pipe
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

2 Respostas

C

Se não me engano, não se pode usar DDL dentro de blocos PL/SQL.

E outra coisa: não existe o conceito de transação para as instruções DDL no Oracle (não sei como são outros bancos).
Quando vc faz um DDL no Oracle, ele faz o commit implicitamente para você.

malhuco

Utilize Command Window que irá funcionar.

Criado 31 de maio de 2010
Ultima resposta 31 de mai. de 2010
Respostas 2
Participantes 3