Fórum Posso utilizar um CREATE TABLE dentro de uma procedure? #60374
12/12/2008
0
Pessoal, estou começando a me aventurar no Firebird e esbarrei em um ponto que não consigo sair.
Basicamente estou tentando executar uma lista de comandos baseado no resultado de uma tabela. Eu fiz isto dentro de uma procedure (não sei se é o melhor), mas ele não aceita que eu utilize alguns comandos (CREATE, DROP, etc.) dentro da procedure.
Vou tentar esquematizar meu código:
Tudo funciona bem se eu não tenho um CREATE TABLE, ou um DROP TABLE ou nenhum outro comando que mude a estrutura do BD, mas se tenho um destes recebo o seguinte erro:
Alguém tem uma idéia de como posso sair desta?
Desde já agradeço a ajuda.
Basicamente estou tentando executar uma lista de comandos baseado no resultado de uma tabela. Eu fiz isto dentro de uma procedure (não sei se é o melhor), mas ele não aceita que eu utilize alguns comandos (CREATE, DROP, etc.) dentro da procedure.
Vou tentar esquematizar meu código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | set term ^ ; create or alter procedure NOME_DA_PROCEDURE as declare VersaoAtual varchar(20); begin select VERSAO from INFORMACOES where NOME=´VERSAO´ into :VersaoAtual; if (:VersaoAtual = ´2b´) then begin CREATE TABLE NOME_DA_TABELA (CAMPO INTEGER); update INFORMACOES set VERSAO=´2c´ where NOME=´VERSAO´; end end ^ set term ^ ; |
Tudo funciona bem se eu não tenho um CREATE TABLE, ou um DROP TABLE ou nenhum outro comando que mude a estrutura do BD, mas se tenho um destes recebo o seguinte erro:
1 2 3 4 5 6 | Statement failed, SQLCODE = -104 Dynamic SQL Error -SQL error code = -104 -Token unknown - line xxx, column yy -CREATE At line xxx in file zzzzzzzz |
Alguém tem uma idéia de como posso sair desta?
Desde já agradeço a ajuda.

Edwardtfn
Curtir tópico
+ 0
Responder
Posts
27/12/2008
Sremulador
execute startment
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)