Sie dies, ohne eine Ansicht tun können, mit etwas ein bisschen Je komplizierter:
create table yourTable(
DATE_TIME DATE,
KEY VARCHAR2(11)
);
Sie DBMS_SQL können die Spalten einer select
Abfrage beschreiben:
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.
Das Ergebnis muss nach dieser Tabelle interpretiert werden:
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
Also, es zu sagen, dass die Spalte KEY
1
geben hat, ist, dass ein VARCHAR2
. So können Sie mehr Informationen haben, zum Beispiel über die Größe.
Dies funktioniert, weil 'DESC' mit Tabellen _and_ Ansichten arbeitet. –
@TimBiegeleisen: Ja. Geschickt, was? –
Ich war buchstäblich eine Minute vom Posting entfernt und sah dich zuerst kommen, also +1 zu dir :-) –