Como o oracle separa os campos, tabelas e condiçoes no sql

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
paulosantos
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 15 Jun 2009 3:58 pm
Localização: Anápolis

Como o oracle separa os campos, tabelas e condiçoes numa string de sql?
queria pegar a string de sql e concatenar com " (aspas) no início e "(aspas) e a palavra vbnewline & _ no fim. para usar no sql do vb.
exemplo:
pegar este sql:
select nome ,empresa ,cargo
from funcionario, empresa
where nome = 'PAULO' and funcionario.empresa_id = empresa.id

e concatenar como abaixo,

" select " & vbnewline & _
"nome " & vbnewline & _
",empresa " & vbnewline & _
",cargo" & vbnewline & _
" from" & vbnewline & _
"funcionario" & vbnewline & _
",empresa" & vbnewline & _
"where" & vbnewline & _
"nome = 'PAULO'" & vbnewline & _
"funcionario.empresa_id = empresa.id" & vbnewline & _

para isto preciso saber como o oracle separa os nomes dos campos, das tabelas e das condiçoes no sql.

Fiz uma estrutura usando instr para usar a virgula como separador de campos, num sql simples deu certo, mas num sql que usa nvl, decode, to_date, não funciona, pois estas funções usam virgula para separar os parametros, com isto o nome dos campos ficam errados.
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Justamente, é meio complexo isso... Não digo nem complexo, falo de trabalhoso!

Acredito que com um bom código feito num bloco PL/SQL você consiga retornar esse arquivo já no formato que você quer...

Lembrando de sempre estar fazendo a checagem do que é nvl, do que é to_date, to_char, decode, etc.. e a cada função dessa que tem virgula, você ignorar todas até o ultimo parentese fechando a função...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 26 visitantes