[firebase-br] Execute Block
Matheus Guerra
matheus.oliveira.guerra em gmail.com
Sex Set 16 14:17:19 -03 2016
Obrigado pela atenção Gladiston.
Sim o script funciona , a questão é que o execute block vai esta em
uma transação controlado por mim, o autonomous transaction vai separar
desta transação e gerar o commit, se eu quiser o rollback a transação
do autonomus transaction não vai ser desfeita.
Ex.:
Starttransaction;
EXECUTE BLOCK
AS
declare variable lsql varchar(4096)='';
BEGIN
lsql='CREATE TABLE teste(c1 varchar(255), n1 integer);';
execute statement :lsql with autonomous transaction;
IN AUTONOMOUS TRANSACTION DO
BEGIN
execute statement 'insert into teste(c1, n1) values(''a'',1);';
execute statement 'insert into teste(c1, n1) values(''b'',2);';
execute statement 'insert into teste(c1, n1) values(''c'',3);';
END;
rollback;
A tabela teste vai estar no BD.
Att,
Matheus Guerra.
Em 16 de setembro de 2016 14:08, Gladiston Santana
<gladiston em vidy.com.br> escreveu:
> Testei aqui e funcionou.
> Agora coloquei de forma didática com duas semânticas diferentes para a
> mesma coisa afim de que pudesse compreender.
> Ex:
>
> SET TERM ^ ;
> EXECUTE BLOCK
> AS
> declare variable lsql varchar(4096)='';
> BEGIN
> lsql='CREATE TABLE teste(c1 varchar(255), n1 integer);';
> execute statement :lsql with autonomous transaction;
> IN AUTONOMOUS TRANSACTION DO
> BEGIN
> execute statement 'insert into teste(c1, n1) values(''a'',1);';
> execute statement 'insert into teste(c1, n1) values(''b'',2);';
> execute statement 'insert into teste(c1, n1) values(''c'',3);';
> END
> END ^
> SET TERM ; ^
>
> [] ´s
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html
Mais detalhes sobre a lista de discussão lista