你可以做到這一點,而無需創建一個視圖(那取決於你使用的是SQL客戶端上的細節),用的東西有點更復雜:
create table yourTable(
DATE_TIME DATE,
KEY VARCHAR2(11)
);
您可以使用DBMS_SQL描述select
查詢的列:
SQL> DECLARE
2 l_Cursor INTEGER DEFAULT dbms_sql.open_cursor;
3 l_Stmt VARCHAR2(4000);
4 l_colCnt NUMBER DEFAULT 0;
5 l_descTbl dbms_sql.desc_tab;
6 BEGIN
7 dbms_sql.parse(l_Cursor, 'SELECT key FROM yourTable', dbms_sql.native);
8 dbms_sql.describe_columns(l_Cursor, l_colCnt, l_descTbl);
9 --
10 FOR i IN 1..l_colCnt LOOP
11 dbms_output.put_line('Column '||l_descTbl(i).col_name || ' - type '||l_descTbl(i).col_type);
12 END LOOP;
13 --
14 dbms_sql.close_cursor(l_Cursor);
15 END;
16/
Column KEY - type 1
PL/SQL procedure successfully completed.
結果必須通過此表來解釋:
Datatype Number
VARCHAR2 1
NVARCHAR2 1
NUMBER 2
INTEGER 2
LONG 8
ROWID 11
DATE 12
RAW 23
LONG RAW 24
CHAR 96
NCHAR 96
MLSLABEL 106
因此,它是說,列KEY
的類型爲1
,這是一個VARCHAR2
。 您可以通過相同的方式獲得更多信息,例如大小。
這是可行的,因爲'DESC'適用於表_and_視圖。 –
@TimBiegeleisen:是的。漂亮,呃? –
我真的離開發帖只有一分鐘,我看到你先進來,因此+1 :-) –