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:

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

Edwardtfn

Responder

Posts

27/12/2008

Sremulador

execute startment


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar