AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 87035
Accepted
JoshL
JoshL
Asked: 2008-09-23 15:33:09 +0800 CST2008-09-23 15:33:09 +0800 CST 2008-09-23 15:33:09 +0800 CST

Execute o script Oracle SQL e saia do sqlplus.exe via prompt de comando

  • 772

Gostaria de executar um script Oracle por meio do SQL Plus por meio de um prompt de comando do Windows. O script não contém um comando "exit", mas eu ainda gostaria que o SQL Plus saísse, retornando o controle ao prompt de comando na conclusão do script. Meu objetivo é fazer isso sem modificar o script. Isso é possível?

command-line-interface oracle sqlplus
  • 11 11 respostas
  • 487015 Views

11 respostas

  • Voted
  1. Best Answer
    Dave Costa
    2008-09-24T04:28:51+08:002008-09-24T04:28:51+08:00

    Outra maneira é usar este comando no arquivo de lote:

    echo exit | sqlplus user/pass@connect @scriptname
    
    • 166
  2. user142847
    2012-10-27T04:21:03+08:002012-10-27T04:21:03+08:00

    Achei essa a melhor solução e funciona em um terminal ou dentro de um script:

    echo @scriptname | sqlplus username/password@connect
    
    • 17
  3. Chris Noe
    2008-09-24T08:04:00+08:002008-09-24T08:04:00+08:00

    Percebendo agora que seu problema pode ser com o próprio arquivo sql, perceba que o sqlplus precisa ser informado para sair. A maneira que eu faço isso é:

    selecione * de dupla;
    
    Sair;
    /
    

    (A barra é importante. Ela diz ao sqlplus para executar o(s) statemet(s) acima dela.)

    • 16
  4. girish
    2012-03-19T13:20:01+08:002012-03-19T13:20:01+08:00

    A melhor maneira de ocultar informações e saídas do usuário é:

    exit | sqlplus -S user/pwd@server @script.sql
    

    exité fornecido à saída do sqlplus forçando-o a sair. -Ssuprime toda a saída do servidor que não seja a consulta sql no script.

    • 15
  5. Ethan Post
    2008-09-24T04:33:44+08:002008-09-24T04:33:44+08:00

    Você também pode fazer isso em seu script de shell.

    sqlplus /nolog <<EOF
    connect user/pass
    @run_some_file.sql
    select * from dual;
    EOF
    

    Você pode precisar escapar do ";" com um \.

    • 10
  6. Charles Duffy
    2008-09-23T15:40:53+08:002008-09-23T15:40:53+08:00

    Sim, é possível - gere um script wrapper que configure o SQLPlus adequadamente, inclua seu script (ou seja. @YourTargetScript.sql) e, em seguida, faça uma saída.

    Dito isso, eu não recomendo essa abordagem de forma alguma -- o SQLPlus tem muitas armadilhas para uso programático; ao escrever scripts de shell no passado que usavam Oracle, construí um wrapper Python em torno dele (adicionando um comportamento de manipulação de erros mais razoável, separação sã de saída entre stdout/stderr, suporte de saída CSV nativo e outros recursos), e isso funcionou muito melhor.

    • 4
  7. Chris Noe
    2008-09-23T15:43:47+08:002008-09-23T15:43:47+08:00

    Assim:

    sqlplus /nolog userid/password@tnsname @filename

    Se você colocar isso em um arquivo de lote, o controle continuará com a(s) instrução(ões) que o seguem.

    EDIT: Foi mal, tente novamente com o sinalizador /nolog

    • 3
  8. user128494
    2012-07-17T11:38:31+08:002012-07-17T11:38:31+08:00

    Para aqueles preocupados com a segurança de incluir sua senha no script, o AskTom tem um artigo sobre "identificado externamente" http://asktom.oracle.com/pls/apex/f?p=100:11:0:::: P11_QUESTION_ID:142212348066

    • 2
  9. Ameen
    2009-06-20T12:40:10+08:002009-06-20T12:40:10+08:00

    Em seu script SQL adicione EXIT. Aqui está o exemplo que meu arquivo test.bat tem o seguinte:

    sqlplus usuário/pwd@server @test.SQL > myLOG.LOG

    meu arquivo test.sql tem o seguinte: select * from dual; saída

    • 1
  10. Olaf Dietsche
    2020-04-18T01:29:00+08:002020-04-18T01:29:00+08:00

    Outro para Linux sem pipes ou bifurcando outro sub-shell/-process

    sqlplus -S dbuser/dbpasswd@dbsid @scriptname </dev/null
    

    Após @scriptnamea conclusão, o sqlplus aguarda a entrada do usuário. Nesse caso, o sqlplus lê um final de arquivo /dev/nulle sai, por causa disso.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso dizer ao Apache qual PHP usar?

    • 5 respostas
  • Marko Smith

    Como fechar um soquete à força em TIME_WAIT?

    • 7 respostas
  • Marko Smith

    Como você copia um disco rígido físico para um disco rígido virtual VMware?

    • 11 respostas
  • Marko Smith

    Como despejar um banco de dados do Microsoft SQL Server em um script SQL?

    • 9 respostas
  • Marko Smith

    Como posso portar para frente com o iptables?

    • 8 respostas
  • Marko Smith

    Como vincular o servidor MySQL a mais de um endereço IP?

    • 8 respostas
  • Marko Smith

    Execute o script Oracle SQL e saia do sqlplus.exe via prompt de comando

    • 11 respostas
  • Martin Hope
    Sam McAfee Como posso dizer ao Apache qual PHP usar? 2008-12-23 18:15:17 +0800 CST
  • Martin Hope
    Rehan Como fechar um soquete à força em TIME_WAIT? 2008-09-04 04:57:26 +0800 CST
  • Martin Hope
    Nick Berardi Como você copia um disco rígido físico para um disco rígido virtual VMware? 2008-10-23 14:38:49 +0800 CST
  • Martin Hope
    Matt Sheppard Como despejar um banco de dados do Microsoft SQL Server em um script SQL? 2008-08-25 17:47:52 +0800 CST
  • Martin Hope
    Stu Como posso portar para frente com o iptables? 2008-12-06 13:06:59 +0800 CST
  • Martin Hope
    BlaM Como vincular o servidor MySQL a mais de um endereço IP? 2008-09-03 08:04:18 +0800 CST
  • Martin Hope
    JoshL Execute o script Oracle SQL e saia do sqlplus.exe via prompt de comando 2008-09-23 15:33:09 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve