J'ai cherché sur le net, sur la faq, sur le forum, mais je trouve que la façon pour lister les champs d'une table
mais, moi, j'ai besoin de lister la liste des colonnes d'une vue sous oracle!!
Merci de me donner la requete Sql à utiliser![]()
J'ai cherché sur le net, sur la faq, sur le forum, mais je trouve que la façon pour lister les champs d'une table
mais, moi, j'ai besoin de lister la liste des colonnes d'une vue sous oracle!!
Merci de me donner la requete Sql à utiliser![]()
Les vues sont aussi dans la vue dba_tab_columns, il suffit donc de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM dba_tab_columns WHERE OWNER = 'TON_SCHEMA' and table_name = 'TA_VUE'
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !
Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
tu ne peux pas, inspire toi de ce sujet : http://www.developpez.net/forums/sho...CRIBE_COLUMNS2
avec la requête récupérée dans dba_views.
Merci
Sinon, on peut également utiliser celle là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM ALL_COL_COMMENTS where TABLE_NAME = 'NOM_VUE'
Regarde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SQL>create table mytab (id integer, name varchar2(10)); Table created. SQL>create view myview as SELECT * FROM mytab; View created.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
38
39
40 SET SERVEROUTPUT ON declare stmt VARCHAR2(32000); c number; d number; col_cnt integer; f BOOLEAN; rec_tab dbms_sql.desc_tab2; rec_desc dbms_sql.desc_rec2; col_num number; begin c := dbms_sql.open_cursor; SELECT TEXT INTO stmt FROM dba_views WHERE VIEW_NAME='MYVIEW'; dbms_sql.parse(c,stmt, DBMS_SQL.NATIVE); d := dbms_sql.execute(c); dbms_sql.describe_columns2(c, col_cnt, rec_tab); /* * Following loop could simply be for j in 1..col_cnt loop. * Here we are simply illustrating some of the PL/SQL table * features. */ col_num := rec_tab.first; IF (col_num IS NOT NULL) then loop dbms_output.put_line('col_name = ' || rec_tab(col_num).col_name); col_num := rec_tab.next(col_num); exit when (col_num IS NULL); end loop; end IF; dbms_sql.close_cursor(c); end; /col_name = ID
col_name = NAME
PL/SQL procedure successfully completed.![]()
Partager