Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Sql*Plus
Sql*Plus Forum d'entraide sur Oracle Sql*Plus
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2007, 15h18   #1
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 0
Points : 0
Par défaut Faire un host echo dans un fichier en sql sous oracle

Voilà mon problème, je voudrais récupérer dans un fichier la description de toutes les tables de ma base : pour celà je me suis fais un p tit script qui permet de récupérer dans un fichier la ligne host echo <table_name> desc <table_name> et le résultat de ce traitement doit aller dans un autre fichier ... je sais pas si j'ai été clair là. En tout cas voilà le code de mon petit script :

Code :
1
2
3
4
5
6
7
8
9
10
 
SET pages 0
SET feed off
spool DESC.sql
SELECT 'HOST echo '||table_name,''||chr(10)||'desc '||table_name||'' FROM user_tables ORDER BY table_name;
spool off
spool resultcreate.txt
@DESC.sql
HOST rm DESC.sql
spool off
Le problèe est que dans le fichier resultcreate.txt généré, je n'ai pas le nom de la table avant sa description !!

Voilà merci d'avance pour votre aide
NouWaT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 16h51   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Essayez :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
col c1 newline
col c2 newline
SET head off
SET feed off
spool DESC.sql
SELECT 'prompt ' || table_name c1, 'desc ' || table_name c2
FROM user_tables
/
spool off
spool resultcreate.txt
@DESC.sql
HOST rm DESC.sql
spool off
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 15h32   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Citation:
Envoyé par NouWaT

Code :
1
2
3
4
5
6
 
spool resultcreate.txt
...
HOST echo TABLE
...
spool off
Le problèe est que dans le fichier resultcreate.txt généré, je n'ai pas le nom de la table avant sa description !!
Oui, l'output de host ne vas pas dans le fichier spool.

Plutôt que ta solution pas trop terrible de faire un spool et un desc, je préfére sélectionner directement depuis user_tab_columns

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
bre ON table_name ski page
 
col table_name new_v table_name nopri
col "Name" FOR a30
col "Type" FOR a20
 
SET lin 60 feed off pages 24
 
tti le table_name s 2
bti s 1
 
SELECT
  table_name, 
  column_name "Name", 
  decode(nullable,'N','NOT NULL') "Null?", 
  DATA_TYPE||
    case when DATA_TYPE IN ('NUMBER','FLOAT') 
    AND (data_precision IS NOT NULL 
      OR data_scale IS NOT NULL) then 
         '('||nvl(DATA_precision,38)||
         case when data_scale!=0 then 
           ','||DATA_SCALE 
         end 
         ||')'
       when data_type LIKE '%CHAR%' then 
         '('||DATA_LENGTH||')' end
  "Type"
FROM user_tab_columns
WHERE table_name IN ('EMP','DEPT','T')
/
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
DEPT
 
Name                           NULL?    Type
------------------------------ -------- --------------------
DEPTNO                         NOT NULL NUMBER(2)
DNAME                                   VARCHAR2(14)
LOC                                     VARCHAR2(13)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EMP
 
Name                           NULL?    Type
------------------------------ -------- --------------------
EMPNO                          NOT NULL NUMBER(4)
ENAME                                   VARCHAR2(10)
JOB                                     VARCHAR2(9)
MGR                                     NUMBER(4)
HIREDATE                                DATE
SAL                                     NUMBER(7,2)
COMM                                    NUMBER(7,2)
DEPTNO                                  NUMBER(2)
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h58.


 
 
 
 
Partenaires

Hébergement Web