web-dev-qa-db-fra.com

Comment exporter le résultat Oracle SQL dans un fichier Windows?

J'ai essayé

select * from users 
save D:\test.sql create;

Mais SQL plus me donne "pas de fin propre" Comment spécifier le chemin dans Oracle SQL dans Windows?

28
Dreamer

Utilisez la bobine:

spool myoutputfile.txt
select * from users;
spool off;

Notez que cela créera myoutputfile.txt dans le répertoire à partir duquel vous avez exécuté SQL * Plus.

Si vous devez exécuter cette opération à partir d'un fichier SQL (par exemple, "tmp.sql") au démarrage de SQLPlus et la sortie dans un fichier nommé "output.txt":

tmp.sql:

select * from users;

Commander:

sqlplus -s username/password@sid @tmp.sql > output.txt

Remarquez que je n'ai pas d'instance Oracle devant moi pour l'instant, vous devrez peut-être effectuer vous-même votre travail pour déboguer ce que j'ai écrit de mémoire.

50
Marc

Très similaire à Marc, la seule différence que je ferais serait de spool à un paramètre comme celui-ci:

WHENEVER SQLERROR EXIT 1
SET LINES 32000
SET TERMOUT OFF ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET SERVEROUTPUT ON

spool &1

-- Code

spool off
exit

Et puis appeler le SQLPLUS en tant que

sqlplus -s username/password@sid @tmp.sql /tmp/output.txt
14
John D
spool "D:\test\test.txt"

select  
  a.ename  
from  
  employee a  
inner join department b  
on  
(  
  a.dept_id = b.dept_id  
)  
;  
spool off  

Cette requête spoulera le résultat SQL dans D:\test\test.txt

3
Shine

pour faciliter la réponse 2, vous pouvez également définir le dossier dans lequel vous pouvez placer votre fichier enregistré.

    spool /home/admin/myoutputfile.txt
    select * from table_name;
    spool off;

après cela seulement avec nano ou vi myoutputfile.txt, vous verrez toute la piste SQL.

l'espoir est que l'aide :)

2
Mohamed Dernoun