2010-12-16 13 views
2

私の選択クエリ 、つまりTABLEからSELECT FIRST_COLUMNを取得するには、oracleテーブルの最初の列を取得する必要があります。これどうやってするの? SYSテーブルへのアクセス権がありません。つまり、user_tab_columnsのようなテーブルへのアクセスはありません。それは可能ですか?oracleテーブルの最初の列を取得するにはどうすればよいですか?

+0

どのような状況でこれを達成しようとしていますか?ストレートSQ、PL/SQLまたは3GL? – stjohnroe

+0

ここでアーカイブしようとしていることを理解しているかどうかわかりません。 SQLツールで作業している場合は、 'select * from table'を実行して、好きなものを選択してください。 – bert

+2

また、列の「順序」に決して依存するべきではありません。時間とともに変化する可能性があります。唯一の良い方法は、名前で列を要求することです。 – guigui42

答えて

1

非常にアクセスが制限されているようです。あなたのアカウントはDBMS_SQLへのアクセスを持っている場合は、次のことを試みることができる:これは、PL/SQLファンクションにラップすることができ

declare 
lv_stat VARCHAR2(300) := 'SELECT * FROM tablename'; 
lv_cid integer; 
lv_tab DBMS_SQL.DESC_TAB; 
lv_cnt int; 
begin 
    lv_cid := DBMS_SQL.OPEN_CURSOR; 
    DBMS_SQL.PARSE(lv_cid,lv_stat,DBMS_SQL.NATIVE); 
    DBMS_SQL.DESCRIBE_COLUMNS(lv_cid,lv_cnt,lv_tab); 
    DBMS_OUTPUT.PUT_LINE('First Column is '||lv_tab(1).col_name); 
    DBMS_SQL.CLOSE_CURSOR(lv_cid); 
    EXCEPTION 
    when others then 
    DBMS_SQL.CLOSE_CURSOR(lv_cid); 
end; 

。あなたのDBAと話すほうが簡単でしょう

3

いつでもUSER_TAB_COLUMNSにアクセスできます。

DBAが失効しようとすると、処理が多すぎます。

関連する問題