Posso utilizar um CREATE TABLE dentro de uma procedure?
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:
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:
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
Curtidas 0
Respostas
Sremulador
12/12/2008
execute startment
GOSTEI 0