I'm working on an implementation for DBD::Oracle, but the SQL
statement (the decode() expressions, to be precise) exceeds the
limit of my editor ;-)
In the meantime - to satisfy the impatient people - I extented
a previous test case
http:[EMAIL PROTECTED]/msg00056.html
Steffen
DROP TABLE tst.TypeTest
/
CREATE TABLE tst.TypeTest
(
cINTEGER INTEGER NOT NULL
, cNUMBER NUMBER
, cNUMBER_38_0 NUMBER ( 38, 0 )
, cNUMBER_11_2 NUMBER ( 11, 2 )
, cNUMBER_xx_2 NUMBER ( *, 2 )
, cFLOAT FLOAT
, cFLOAT_11 FLOAT ( 11 )
, cREAL REAL
, cDOUBLE_PRECISION DOUBLE PRECISION
, cDATE DATE DEFAULT sysdate
, cCHAR CHAR
, cVARCHAR VARCHAR ( 7 )
, cVARCHAR2 VARCHAR2( 7 )
)
/
COMMENT ON COLUMN tst.TypeTest.cINTEGER IS 'This is an integer.'
/
SELECT *
FROM
(
SELECT tc.OWNER
, tc.TABLE_NAME
, tc.COLUMN_NAME
, tc.DATA_TYPE
, tc.DATA_LENGTH
, tc.DATA_PRECISION
, tc.DATA_SCALE
, tc.NULLABLE
, tc.COLUMN_ID
, tc.DEFAULT_LENGTH
, tc.DATA_DEFAULT
, cc.COMMENTS
FROM ALL_TAB_COLUMNS tc
, ALL_COL_COMMENTS cc
WHERE tc.TABLE_NAME = cc.TABLE_NAME
AND tc.COLUMN_NAME = cc.COLUMN_NAME
AND tc.OWNER = cc.OWNER
)
WHERE OWNER LIKE 'TST'
AND TABLE_NAME LIKE 'TYPETEST'
ORDER by OWNER, TABLE_NAME, COLUMN_ID
/
/*
OWNER TABLE COLUMN DATA DATA DATA DATA NULLABLE COLUMN
DEFAULT DATA COMMENTS
NAME NAME TYPE LENGTH PRECISION SCALE ID
LENGTH DEFAULT
----- -------- ----------------- -------- ------ --------- ----- -------- ------
------- ------- --------------------
TST TYPETEST CINTEGER NUMBER 22 0 N 1
This is an integer.
TST TYPETEST CNUMBER NUMBER 22 Y 2
TST TYPETEST CNUMBER_38_0 NUMBER 22 38 0 Y 3
TST TYPETEST CNUMBER_11_2 NUMBER 22 11 2 Y 4
TST TYPETEST CNUMBER_XX_2 NUMBER 22 2 Y 5
TST TYPETEST CFLOAT FLOAT 22 126 Y 6
TST TYPETEST CFLOAT_11 FLOAT 22 11 Y 7
TST TYPETEST CREAL FLOAT 22 63 Y 8
TST TYPETEST CDOUBLE_PRECISION FLOAT 22 126 Y 9
TST TYPETEST CDATE DATE 7 Y 10
8 sysdate
TST TYPETEST CCHAR CHAR 1 Y 11
TST TYPETEST CVARCHAR VARCHAR2 7 Y 12
TST TYPETEST CVARCHAR2 VARCHAR2 7 Y 13
*/