Cristiano,
Você colocou ponto e virgula (;) depois do select? Também é necessário colocar um exit depois do spool off. Sem ser via crontab você já executou manualmente para validar seu funcionamento? # /bin/su - oracle -c "sqlplus usuario/senha @/home/oracle/usr_criacao.sql" >> /var/tmp/usr_criacao.log1 Atenciosamente Ricardo Ferro Administrador de Banco de Dados Vitarella - Ind. de Alimentos Bomgosto Ltda. Fone: (81) 3464.0149 E-mail: rfe...@vitarella.com.br <mailto:rfe...@vitarella.com.br> De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Cristiano Vasconcelos Enviada em: quinta-feira, 12 de maio de 2011 09:03 Para: GPOracle; Grupo OraOracle; José Laurindo Chiappa; Lista de Usuários Oracle; Mosán Santos; Oracle in Brazil; Oracle Tools; oracle_br_docs; oracle_fasttrack; Uncleoracle Assunto: [oracle_br] Automatização geração de relatórios Caros amigos, CENÁRIO: S.O. - Enterprise Linux Enterprise Linux AS release 4 (October Update 7) Linux servidor.dominio.istancia.local 2.6.9-78.0.0.0.1.ELsmp #1 SMP Fri Jul 25 16:04:35 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux DB - Oracle Database 10g Release 10.2.0.3.0 - 64bit Production CASO: Estou precisando automatizar geração diariá de informações em arquivo texto, onde na nomenclatura do arquivo gerado tenha <nomearq_ddmmyy:hhmm.txt>. Este arquivo após ser gerado é copiado do servidor da DB para uma outra máquina e jogado em uma área de ftp. Pois bem, este procedimento atualmente está sendo feito manualmente, então gostaria de saber como poderia ser feito automaticamente em determinada hora do dia sem que seja preciso intervir. Estou em duvida de como proceder em relação a automatização da cópia a ser realizada pelo servidor e principalmente em relação a geração do arquivo .TXT no oracle: O procedimento pode ser feito pelo "Scheduler Job" do oracle, ou poderá ser feito pela "Cron" do S.O. Linux disparando um shell de conexão com SQL*Plus chamando um SCRIPT com a estrutura de SELECT a qual gerará as informações necessárias ???. Caso alguns dos amigos possuam essa estrutura, favor repassá-la com instruções. Em sugestão dadas por alguns colaboradores dos grupos, implementei a rotina abaixo descrita na cron do linux: ########################################################## # CRONTAB # # Data: 12/05/2011 ########################################################## # 53 08 12 5 4 /bin/su - oracle -c "sqlplus usuario/senha @/home/oracle/usr_criacao.sql" >> /var/tmp/usr_criacao.log1 Onde 15 significa: "aos 15 minustos" Onde 14 significa: "às 14 horas" Onde 11 significa: "dia 11 do mês" Onde 5 significa: "Mês 5" Onde 3 significa: "Quarta-feira" Onde oracle -c significa: "rodar a linha de comando após conectar usuário oracle" Conteudo do Script: REM Script Teste:usr_criacao.sql spool /home/oracle/usr_criacao.txt SELECT u.name, D.ACCOUNT_STATUS, D.LOCK_DATE, TO_CHAR (u.ctime, 'dd/mm/yyyy hh24:mi:ss') AS "Criao", TO_CHAR (u.ptime, 'dd/mm/yyyy hh24:mi:ss') AS "Modificacao" FROM sys.user$ u, dba_users d WHERE u.name = d.username AND u.ctime = D.CREATED AND d.created BETWEEN TO_DATE ('01/01/2009', 'dd/mm/yy') AND TO_DATE ('31/12/2009', 'dd/mm/yy') ORDER BY d.created spool off ------ Saída de Log´s: --------------- CENÁRIO 01 Log da rotina quando gerada pela "Crontab": # cat usr_criacao.log1 SQL*Plus: Release 10.2.0.3.0 - Production on Qui Mai 12 08:53:01 2011 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Conectado a: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production SQL> Desconectado de Oracle Database 10g Release 10.2.0.3.0 - 64bit Production CENÁRIO 02 Rotina gerada sem ser pela "Crontab", linha de comando executada no prompt do sistema: # /bin/su - oracle -c "sqlplus usuario/senha @/home/oracle/usr_criacao.sql" >> /var/tmp/usr_criacao.log Log da rotina quando gerada sem ser pela "Crontab": # cat usr_criacao.log SQL*Plus: Release 10.2.0.3.0 - Production on Qui Mai 12 08:24:42 2011 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Conectado a: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production SQL> SQL> PERGUNTA ????? Diante dos dois cenários acima expostos, gostaria de saber o por que da não geração das informações por parte do script, ONDE ESTÁ O ERRO, por que no CENÁRIO 01 após a conexão ao sqlplus o script não é gerado e sim desconectado do banco ???????. Por que no CENÁRIO 02 é gerada essa saída "SQL> SQL>" ficando a sessão ativa, como se estivesse gerando algo sem na verdade gerar nada, tendo que ser derrubada para findar. Aos amigos com maior experiência na plataforma, peço ajuda, acredito ser um detalhe, só que QUAL ??? Mais uma vez AGRADEÇO A ATENÇÃO E AJUDA DISPENSADAS. -- Cristiano Vasconcelos Barbosa .'. Analista de Sistemas. DEUS MEUMQUE JUS.'. DÓMINI SUMUS.'. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]