下面是之前工作常需要的脚本,有需要的同学可以拿走....
#!/bin/sh
ORA_CONN= test/test
tbname=$1
sqlplus -s ${ORA_CONN} <
set heading off
set pagesize 0
set long 2000000
set linesize 32767
set trimspool on
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'SQLTERMINATOR', TRUE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'TABLESPACE', FALSE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'CONSTRAINTS', FALSE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'REF_CONSTRAINTS', FALSE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'CONSTRAINTS_AS_ALTER', FALSE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'STORAGE', FALSE);
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'SEGMENT_ATTRIBUTES', FALSE);
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
FROM USER_TABLES u WHERE U.TABLE_NAME = UPPER('$tbname');
EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'PRETTY', TRUE);
SELECT DBMS_METADATA.GET_dependent_DDL('INDEX',u.table_name)
FROM USER_TABLES u
where u.table_name = upper('$tbname');
!
本 shell脚本可获得 oracle表结构,参数为表名。