Gerar arquivo TXT

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Boa tarde Pessoal, primeiro quero me apresentar informando que tenho somente um conhecimento básico de banco de dados, mas estou precisando da ajuda de vocês.

Elaborei a seguinte query:

Selecionar tudo

SELECT DISTINCT
-- DADOS DA CIRURGIA
 CIRURGIA.CD_CIRURGIA
 ,(SELECT A.DS_TAB_FAT FROM TAB_FAT A, ITREGRA, CON_PLA C, PRO_FAT D
                       WHERE A.CD_TAB_FAT = ITREGRA.CD_TAB_FAT
                       AND ITREGRA.CD_REGRA = C.CD_REGRA
                       AND D.CD_GRU_PRO = ITREGRA.CD_GRU_PRO
                       AND C.CD_CONVENIO = CONVENIO.CD_CONVENIO
                       AND C.CD_CON_PLA = CON_PLA.CD_CON_PLA
                       AND D.CD_PRO_FAT = CIRURGIA.CD_PRO_FAT) TABELA
,CIRURGIA.CD_PRO_FAT PROCEDIMENTO
,TO_CHAR(AVISO_CIRURGIA.DT_INICIO_CIRURGIA, 'DD/MM/YYYY') DATA_CIRURGIA
,TO_CHAR(AVISO_CIRURGIA.DT_INICIO_ANESTESIA, 'HH24:MI')HR_INICIO_ANESTESIA
,TO_CHAR(AVISO_CIRURGIA.DT_FIM_ANESTESIA, 'HH24:MI') HR_FIM_ANESTESIA
,AVISO_CIRURGIA.CD_TIP_ANEST COD_ANESTESIA
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 01
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)CIRURGIAO_I
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 02
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)CIRURGIAO_II
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 06
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)ANESTESISTA_I
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 51
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)ANESTESISTA_II
-- DADOS DO PACIENTE
,PACIENTE.CD_PACIENTE COD_PRONTUARIO
,PACIENTE.NM_PACIENTE NOME_PACIENTE
,DECODE( PACIENTE.TP_SEXO,'M', 'MASCULINO'
                         ,'F', 'FEMININO'
                         ,'I', 'INDETERMINADO' ) SEXO_PACIENTE
,PACIENTE.NR_FONE TELEFONE
,PACIENTE.NR_CEP CEP
,PACIENTE.DS_ENDERECO ENDERECO
,PACIENTE.NR_ENDERECO NUMERO_ENDERECO
,PACIENTE.DS_COMPLEMENTO COMPLEMENTO_ENDERECO
,PACIENTE.NM_BAIRRO BAIRRO
,(SELECT NM_CIDADE FROM DBAMV.CIDADE
                   WHERE CD_CIDADE = PACIENTE.CD_CIDADE) CIDADE
-- DADOS DO ATENDIMENTO
,CONVENIO.CD_CONVENIO COD_CONVENIO
--,NM_CONVENIO DESC_CONVENIO
--,CON_PLA.DS_CON_PLA DESC_PLANO
,CON_PLA.CD_CON_PLA COD_PLANO
,TO_CHAR(DT_ATENDIMENTO, 'DD/MM/YYYY') DATA_ATENDIMENTO
,DS_TIP_ACOM TIPO_ACOMODACAO
,ATENDIME.NR_CARTEIRA NR_CARTEIRINHA
FROM DBAMV.ATENDIME
    ,DBAMV.CONVENIO
    ,DBAMV.TIP_ACOM
    ,DBAMV.SERVICO
    ,DBAMV.CON_PLA
    ,DBAMV.CARTEIRA
    ,DBAMV.PACIENTE
    ,DBAMV.CIDADE
    ,DBAMV.TIPO_INTERNACAO
    ,DBAMV.AVISO_CIRURGIA
    ,DBAMV.PRESTADOR_AVISO
    ,DBAMV.CIRURGIA_AVISO
    ,DBAMV.CIRURGIA
 WHERE
   CONVENIO.CD_CONVENIO = ATENDIME.CD_CONVENIO
   AND CIRURGIA_AVISO.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
   AND CIRURGIA.CD_CIRURGIA = CIRURGIA_AVISO.CD_CIRURGIA
   AND AVISO_CIRURGIA.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
   AND ATENDIME.CD_ATENDIMENTO = AVISO_CIRURGIA.CD_ATENDIMENTO
   AND SERVICO.CD_SERVICO(+)     = ATENDIME.CD_SERVICO
   AND TIP_ACOM.CD_TIP_ACOM(+)   = ATENDIME.CD_TIP_ACOM
   AND CON_PLA.CD_CON_PLA        = ATENDIME.CD_CON_PLA
   AND CON_PLA.CD_CONVENIO       = ATENDIME.CD_CONVENIO
   AND CARTEIRA.CD_PACIENTE(+)   = ATENDIME.CD_PACIENTE
   AND CARTEIRA.CD_CONVENIO(+)   = ATENDIME.CD_CONVENIO
   AND CARTEIRA.CD_CON_PLA(+)    = ATENDIME.CD_CON_PLA
   AND PACIENTE.CD_PACIENTE   = ATENDIME.CD_PACIENTE
   AND CIDADE.CD_CIDADE(+) = PACIENTE.CD_NATURALIDADE
   AND TIPO_INTERNACAO.CD_TIPO_INTERNACAO(+) = ATENDIME.CD_TIPO_INTERNACAO
   ORDER BY COD_PRONTUARIO
O problema é o seguinte:

1o. - preciso que essa query seja executada no banco todo os dias as 6h am.

2o. - o resultado dessa query deve ser salvo em um arquivo TXT separado por virgulas em um local da rede.

Se necessário eu posso até criar um view com essa query e depois só rodar um select simples passando como parametro o sysdate. Mas meu conhecimento não está me permitindo fazer isso.

Abraços,
Augusto Moura.
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

cria um arquivo .sql com esse select, mas antes
adiciones essas linhas no começo.

Selecionar tudo

set echo off
set verify off
set feedback off
ttitle off

set heading on

spool <aqui poe o endereço de rede e o nome do arquivo.txt>

<SEU SELECT AQUI>;

spool off

exit;
-------
Cria uma tarefa agendada ou job com o comando.

Selecionar tudo

sqlplus usuário/senha@instance @arquivo.sql
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Anderson, primeira muito obrigado pela ajuda.

Fiz o que me orientou mas deu o erro ORA-00922: missing or invalid option. Segue a forma que elaborei o script:

Selecionar tudo

set echo off
set verify off
set feedback off
ttitle off
set heading on
spool c:\anestesia\anestesia.txt

SELECT DISTINCT
-- DADOS DA CIRURGIA
 CIRURGIA.CD_CIRURGIA
 ,(SELECT A.DS_TAB_FAT FROM TAB_FAT A, ITREGRA, CON_PLA C, PRO_FAT D
                       WHERE A.CD_TAB_FAT = ITREGRA.CD_TAB_FAT
                       AND ITREGRA.CD_REGRA = C.CD_REGRA
                       AND D.CD_GRU_PRO = ITREGRA.CD_GRU_PRO
                       AND C.CD_CONVENIO = CONVENIO.CD_CONVENIO
                       AND C.CD_CON_PLA = CON_PLA.CD_CON_PLA
                       AND D.CD_PRO_FAT = CIRURGIA.CD_PRO_FAT) TABELA
,CIRURGIA.CD_PRO_FAT PROCEDIMENTO
,TO_CHAR(AVISO_CIRURGIA.DT_INICIO_CIRURGIA, 'DD/MM/YYYY') DATA_CIRURGIA
,TO_CHAR(AVISO_CIRURGIA.DT_INICIO_ANESTESIA, 'HH24:MI')HR_INICIO_ANESTESIA
,TO_CHAR(AVISO_CIRURGIA.DT_FIM_ANESTESIA, 'HH24:MI') HR_FIM_ANESTESIA
,AVISO_CIRURGIA.CD_TIP_ANEST COD_ANESTESIA
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 01
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)CIRURGIAO_I
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 02
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)CIRURGIAO_II
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 06
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)ANESTESISTA_I
,(SELECT CD_PRESTADOR FROM PRESTADOR_AVISO A
                      WHERE A.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
                            AND A.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
                            AND CD_ATI_MED = 51
                            AND A.CD_CIRURGIA = CIRURGIA.CD_CIRURGIA)ANESTESISTA_II
-- DADOS DO PACIENTE
,PACIENTE.CD_PACIENTE COD_PRONTUARIO
,PACIENTE.NM_PACIENTE NOME_PACIENTE
,DECODE( PACIENTE.TP_SEXO,'M', 'MASCULINO'
                         ,'F', 'FEMININO'
                         ,'I', 'INDETERMINADO' ) SEXO_PACIENTE
,PACIENTE.NR_FONE TELEFONE
,PACIENTE.NR_CEP CEP
,PACIENTE.DS_ENDERECO ENDERECO
,PACIENTE.NR_ENDERECO NUMERO_ENDERECO
,PACIENTE.DS_COMPLEMENTO COMPLEMENTO_ENDERECO
,PACIENTE.NM_BAIRRO BAIRRO
,(SELECT NM_CIDADE FROM DBAMV.CIDADE
                   WHERE CD_CIDADE = PACIENTE.CD_CIDADE) CIDADE
-- DADOS DO ATENDIMENTO
,CONVENIO.CD_CONVENIO COD_CONVENIO
--,NM_CONVENIO DESC_CONVENIO
--,CON_PLA.DS_CON_PLA DESC_PLANO
,CON_PLA.CD_CON_PLA COD_PLANO
,TO_CHAR(DT_ATENDIMENTO, 'DD/MM/YYYY') DATA_ATENDIMENTO
,DS_TIP_ACOM TIPO_ACOMODACAO
,ATENDIME.NR_CARTEIRA NR_CARTEIRINHA
FROM DBAMV.ATENDIME
    ,DBAMV.CONVENIO
    ,DBAMV.TIP_ACOM
    ,DBAMV.SERVICO
    ,DBAMV.CON_PLA
    ,DBAMV.CARTEIRA
    ,DBAMV.PACIENTE
    ,DBAMV.CIDADE
    ,DBAMV.TIPO_INTERNACAO
    ,DBAMV.AVISO_CIRURGIA
    ,DBAMV.PRESTADOR_AVISO
    ,DBAMV.CIRURGIA_AVISO
    ,DBAMV.CIRURGIA
 WHERE
   CONVENIO.CD_CONVENIO = ATENDIME.CD_CONVENIO
   AND CIRURGIA_AVISO.CD_AVISO_CIRURGIA = AVISO_CIRURGIA.CD_AVISO_CIRURGIA
   AND CIRURGIA.CD_CIRURGIA = CIRURGIA_AVISO.CD_CIRURGIA
   AND AVISO_CIRURGIA.CD_AVISO_CIRURGIA = PRESTADOR_AVISO.CD_AVISO_CIRURGIA
   AND ATENDIME.CD_ATENDIMENTO = AVISO_CIRURGIA.CD_ATENDIMENTO
   AND SERVICO.CD_SERVICO(+)     = ATENDIME.CD_SERVICO
   AND TIP_ACOM.CD_TIP_ACOM(+)   = ATENDIME.CD_TIP_ACOM
   AND CON_PLA.CD_CON_PLA        = ATENDIME.CD_CON_PLA
   AND CON_PLA.CD_CONVENIO       = ATENDIME.CD_CONVENIO
   AND CARTEIRA.CD_PACIENTE(+)   = ATENDIME.CD_PACIENTE
   AND CARTEIRA.CD_CONVENIO(+)   = ATENDIME.CD_CONVENIO
   AND CARTEIRA.CD_CON_PLA(+)    = ATENDIME.CD_CON_PLA
   AND PACIENTE.CD_PACIENTE   = ATENDIME.CD_PACIENTE
   AND CIDADE.CD_CIDADE(+) = PACIENTE.CD_NATURALIDADE
   AND TIPO_INTERNACAO.CD_TIPO_INTERNACAO(+) = ATENDIME.CD_TIPO_INTERNACAO
   ORDER BY COD_PRONTUARIO;       
   spool off
exit 
Eu ainda não cheguei a gerar o job para testar. Realizei o teste no navigator.

O que pode ter ocorrido?

Abraços,
Augusto Moura.
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Consegui evoluir... olhe o erro que o plus está retornando:

Selecionar tudo

unknown command beginning "<SELECT DI..." - rest of line ignored.
unknown command beginning "CIRURGIA.C..." - rest of line ignored.
unknown command beginning ",(SELECT A..." - rest of line ignored.
unknown command beginning "WHERE A.CD..." - rest of line ignored.
unknown command beginning "AND ITREGR..." - rest of line ignored.
Abraços,
Augusto Moura.
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Evolui, criei um view com a query e ficou assim:

Selecionar tudo

set echo off
set verify off
set feedback off
ttitle off
set heading on

spool c:\anestesia\anestesia.txt

select * from vdic_anestesia_hmg;

Spool off
Funcionou, mas agora o problema é que o arquivo gerado esta ficando todo desformatado:

Selecionar tudo

CD_CIRURGIA TABELA                         PROCEDIM DATA_CIRUR HR_IN HR_FI COD_ANESTESIA CIRURGIAO_I
----------- ------------------------------ -------- ---------- ----- ----- ------------- -----------
CIRURGIAO_II ANESTESISTA_I ANESTESISTA_II COD_PRONTUARIO NOME_PACIENTE                              
------------ ------------- -------------- -------------- ----------------------------------------   
SEXO_PACIENTE TELEFONE                                 CEP                                          
------------- ---------------------------------------- --------                                     
ENDERECO                                 NUMERO_ENDERECO COMPLEMENTO_ENDERECO                       
---------------------------------------- --------------- ------------------------------


O que pode estar acontecendo????
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brow, você colocou um:

Selecionar tudo

Set linesize 10000;
??? Pode ter sido isso.
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Boa tarde Trevisolli, muito obrigado por me ajudar também.

Comecei com 10000, mas ficou dessa forma:

Selecionar tudo


        749 HONORARIOS - AMB 1992          56120168 13/02/2008 07:48 08:50            45           2            9            15             22              2 RAFAEL ROCHA BORGES                      MASCULINO     19-32563842                              13087774 MANOEL PEREIRA BARBOSA                               610                                PARQUE ALTO TAQUARAL                                         CAMPINAS                                            8         2 13/02/2008 ENFERMARIA 2 LEITOS            00029905010341001                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
       2295 HONORARIOS - AMB 1992          56050011 13/02/2008 07:35 08:50            26           2            9                                           3 ALTINO PINHO                             MASCULINO     19-38710377                              13271600 PAIQUERE                                             766 CASA 64                        JARDIM PAIQUERE                                              VALINHOS                                            8         1 13/02/2008 APARTAMENTO                    00029905010341001                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
       1267 HONORARIOS - AMB 1992          45080194 13/02/2008 08:35 10:48            82          21           26            15             22              4 MICHELLY NUNES VENANCIO DA SILVA         FEMININO      19-38591632                              13272502 GENOVEVA GABETTA BRACALENTE                           68                                JARDIM AMERICA II                                            VALINHOS                                            8         2 13/02/2008 ENFERMARIA 2 LEITOS            00025117000321025                                                                                                                                                                                    
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Preciso que fique um registro por linha e sem espaço... já tetei varios número no linesize e não consegui. Nunca fica uma linha só de registro.
Tem como ser separado por ; ou , cada campo de registro?

Abraços e muito obrigado.

Augusto Moura.
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Pessoal, quero agrader a todos pelas valiosas ajudas. Consegui montar o arquivo, arrumar o layout, agendar o job...

Abraços,
Augusto Moura.
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Parabéns criança, a gente está aqui pra ajudar, mas nas tentativas e erros conseguimos os objetivos.
Provou pra muita gente que tem preguiça que só precisamos de um empurrão pra conseguir o que queremos.
Fico feliz de ter ajudado, e essas pequenas coisas fazem valer a pena ficar respondendo as perguntas do forum.
Ganhou um tutorial sobre Oracle no meu site, escolhe que vou escrever pra você.
gmourag
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Sex, 22 Fev 2008 1:45 pm
Localização: Campinas - SP

Anderson, acho que podemos montar um how to desses passos que me foram ensinados por vocês. Tem até outro tópico que o pessoal me ensina a separar o arquivo por ";" e ainda incrementar o nome do arquivo. Show de mais... vocês são bons.

Abraços
Augusto Moura.
Jeantijuca
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Dom, 14 Fev 2010 1:40 pm
Localização: RJ

Augusto,
estou com um problema igual ao seu e gostaria de saber como resolveu...
Consigo gerar o arquivo texto, porém preciso formata-lo e separa-lo por ;

Abraço.
DiegoTavares
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Qua, 28 Abr 2010 9:10 am
Localização: Jundiai - SP
Diego Tavares

Bom Dia,

Estou montando algumas queries e preciso gerá-las automaticamente

Estou fazendo dessa maneira

Selecionar tudo

SET ECHO OFF
SET LINESIZE 1000
SET HEADING ON
SPOOL D:\Nomearquivo.TXT
Meu Select
SPOOL OFF
EXIT;
Como faço para gerar o arquivo com a data do dia no formato 'YYYYMMDD' (sysdate) ?

Assim que acertar isso eu consigo agendar o JOB.

Agradeço a ajuda antecipadamente.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Na sua coluna no select faz

Selecionar tudo

To_Char(SEUCAMPODATA, 'RRRRMMDD') minhaColunaData
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

o nome do arquivo você quer mudar?

dentro do script no spool trabalhe com:

Selecionar tudo

date +%G%m%d (Linux)

ArquivoDoDia$(date +%G%m%d).log
Isso gera um arquivo com o nome ArquivoDoDiaYYYYMMRRRR no seu caso só tirar o comeco "ArquivoDoDia" e feito, era isso?
DiegoTavares
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Qua, 28 Abr 2010 9:10 am
Localização: Jundiai - SP
Diego Tavares

diegolenhardt

Fiz como você disse, mas não deu certo.

Selecionar tudo

SET ECHO OFF
SET LINESIZE 1000
SET HEADING ON
SPOOL D:\(date+%G%M%D).TXT
SELECT * FROM EMP;
SPOOL OFF
EXIT;
O que fiz de errado? Uso o WindowsXP
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

No windows tem a variavel de ambiente %date%

mas não sei como formatar essa saída..

o exemplo que passei seria para linux...
edson.amorim
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 135
Registrado em: Qui, 04 Out 2007 3:36 pm
Localização: Belo Horizonte - MG

Prezado colega,

Tentei esta alternativa em meu código mas deu a mensagem ORA-00922: opção não encontrada ou Inválida.

grato,
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Boa tarde,

Acho que assim não funciona mesmo.

Tentem assim:

Selecionar tudo

set define '^'
column arquivo new_val LOG1
select 'C:\Scripts\'||instance_name||'_'||to_char(sysdate,'YYYY-MM-DD_HH24-MI-SS')||'.log' arquivo 
from v$instance;

spool ^LOG1
Ai entre o SELECT.
Responder
  • Informação
  • Quem está online

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