Gerar script de inserção a partir de uma select

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Olá, pessoal,

Eu estou gerando um script para inserir dados em uma tabela. Um dos valores a serem inseridos é uma data que pego de uma outra tabela. O script está assim:

select 'insert into arquivo_local values (sequencia.nextval,'||prot||',0,'||local||',
(
select max(dt_and) from tabela2 where prot = prot));'
from tabela
/

No select o campo prot seria comparado ao campo prot da tabela2. Como faço isso?
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

tabela2.prot
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP
Ricardo H. Tajiri

Selecionar tudo

select 'insert into arquivo_local values (sequencia.nextval,'||prot||',0,'||local||',' ||
(
select 'to_date(''' || max(dt_and) || ''',''dd/mm/rr''));' from tabela2 t2 where t2.prot = t1.prot))
from tabela t1
/ 
Fique esperto que eu coloquei o to_date e acertei algumas aspas simples do seu código. Pode existir a necessidade de colocar mais aspas simples aí pra gerar o comando corretamente (caso exista algum campo do tipo VARCHAR2, VARCHAR, CHAR...). Acerte também o formato da data nom comando to_date para o formato que você está utilizando aí. Isso porque eu já to considerando o campo dt_and como sendo do tipo DATE, se não for, acerte isso tb... :-o
Responder
  • Informação