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 :(
Version imprimable
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 faireCode:SELECT * FROM dba_tab_columns WHERE OWNER = 'TON_SCHEMA' and table_name = 'TA_VUE'
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 :yaisse2:
Sinon, on peut également utiliser celle là :
Code:SELECT * FROM ALL_COL_COMMENTS where TABLE_NAME = 'NOM_VUE'
Regarde :
Code:
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:
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; /
:)Citation:
col_name = ID
col_name = NAME
PL/SQL procedure successfully completed.