VARIAVEL NO FROM DA TABELA

21/05/2019

0

Boa tarde Pessoal !!
estou com um problema que tenho 5 tabelas praticamente idênticas, não posso unir em um tabelão pois vai ficar dificil a manutenção para o usuário
preciso buscar um valor destas tabelas mas antes definir de que tabela buscar
Gostaria de fazer um SELECT usando uma variável no FROM, exemplo:

Field_tabela := TABELA01;
SELECT * FROM Field_tabela;

é possível fazer isso de alguma maneira , aguardo uma resposta meus amigos e agradeço desde já
Luiz Zacchi

Luiz Zacchi

Responder

Post mais votado

22/05/2019

Eu não conheço a sintaxe ORACLE, mas deve ser algo assim:
EXECUTE IMMEDIATE 'SELECT TUBO6 FROM ' + TABELA + ' WHERE STRING = ''QTX(I)/2'' '
Porque você precisa concatenar a variável 'tabela', e não abrir a tabela 'tabela'.

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

21/05/2019

Emerson Nascimento

pesquisa por EXECUTE IMMEDIATE.

Aqui mesmo no Devmedia você encontra dicas sobre esse assunto:
https://www.devmedia.com.br/sql-dinamico-no-oracle-parte-1/6062
Responder

22/05/2019

Luiz Zacchi

pesquisa por EXECUTE IMMEDIATE.

Aqui mesmo no Devmedia você encontra dicas sobre esse assunto:
https://www.devmedia.com.br/sql-dinamico-no-oracle-parte-1/6062


OBRIGADO PELA AJUDA

SELECT VAOFILACENTRAL INTO FIELD_VAOFILACENTRAL FROM AD_PARAMSEGUIDOR WHERE TIPO = FIELD_MATERIA_SEG AND ISOPLETA = FIELD_ISOPLETA;


IF FIELD_VAOFILACENTRAL =7 THEN
TABELA:= 'AD_TOVPS7';
ELSIF FIELD_VAOFILACENTRAL =6 THEN
TABELA:= 'AD_TOVPS6';
ELSIF FIELD_VAOFILACENTRAL =5 THEN
TABELA:= 'AD_TOVPS5';
ELSIF FIELD_VAOFILACENTRAL =4 THEN
TABELA:= 'AD_TOVPS4';
ELSIF FIELD_VAOFILACENTRAL =3 THEN
TABELA:= 'AD_TOVPS3';
ELSIF FIELD_VAOFILACENTRAL =2 THEN
TABELA := 'AD_TOVPS2';
END IF;

EXECUTE IMMEDIATE 'SELECT TUBO6 FROM TABELA WHERE STRING = QTX(I)/2'
INTO TUBO2(I)
USING TABELA;


TENTEI USAR ESTE COMANDO NESTA SINTAXE, POREM NAO FUNCIONOU
Responder

22/05/2019

Emerson Nascimento

Eu não conheço a sintaxe ORACLE, mas deve ser algo assim:
EXECUTE IMMEDIATE 'SELECT TUBO6 FROM' + TABELA + 'WHERE STRING = ''QTX(I)/2'''
Porque você precisa concatenar a variável 'tabela', e não abrir a tabela 'tabela'.
Responder

22/05/2019

Luiz Zacchi

Eu não conheço a sintaxe ORACLE, mas deve ser algo assim:
EXECUTE IMMEDIATE 'SELECT TUBO6 FROM ' + TABELA + ' WHERE STRING = ''QTX(I)/2'' '
Porque você precisa concatenar a variável 'tabela', e não abrir a tabela 'tabela'.

ok!
vou tentar obrigado !!
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar