2008년 6월 27일 금요일

oracle query tip

oralce desc script

select a.COLUMN_NAME, '\t'), nvl(decode(A.NULLABLE,'N', 'NO', 'YES'), a.DATA_TYPE||'('||DECODE(a.DATA_TYPE,'NUMBER',a.DATA_PRECISION, a.DATA_LENGTH)||')', b.COMMENTS,
from   USER_TAB_COLUMNS a, USER_COL_COMMENTS b
where  a.TABLE_NAME = 'TEST'
and a.TABLE_NAME = b.TABLE_NAME
and    a.COLUMN_NAME = b.COLUMN_NAME
ORDER BY a.TABLE_NAME, COLUMN_ID

oracle table script

SELECT  DBMS_METADATA.GET_DDL('TABLE',TABLE_NAME,OWNER)
DBMS_METADATA.GET_DEPENDENT_DDL('INDEX',TABLE_NAME,OWNER),
DBMS_METADATA.GET_DEPENDENT_DDL('COMMENT',TABLE_NAME,OWNER)
FROM DBA_TABLES
WHERE OWNER = 'OWNER'
AND TABLE_NAME = 'TEST'

perl로 스트립트를 만드는데 table script는 lob관련 에러가 났다.
oracle connect 후에 추가한다.

$dbh->{LongReadLen} = 512 * 1024;
$dbh->{LongTruncOk} = 1;

그리고 Wide character in print 관련 warnning은
binmode STDOUT, ':utf8';
를 추가하면된다.

댓글 없음: