将Oracle分区表的定义导到文件中
2016-04-13 11:40
639 查看
分区表的定义,特别是复合分区表的定义,在pl/sql developer里面是看不了的。
用数据库的话 impdp test/test directory=dump_0420 dumpfile=2.dmp sqlfile=11.sql include=TABLE/TABLE
import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ImportTableDefine { static final String driver_class = "oracle.jdbc.driver.OracleDriver"; static final String connectionURL = "jdbc:oracle:thin:@10.10.100.16:1521:orcl"; static final String userID = "DEVELOP"; static final String userPassword = "DEVELOP"; public void readClob(String fileName) { Connection con = null; Statement stmt = null; ResultSet rset = null; StringBuffer sb = new StringBuffer(); sb.append(" with tt as(select distinct table_name from user_tab_partitions) "); sb.append(" select dbms_metadata.get_ddl('TABLE',table_name) CLOB_TEXT from tt "); try { Class.forName(driver_class).newInstance(); con = DriverManager.getConnection(connectionURL, userID, userPassword); stmt = con.createStatement(); rset = stmt.executeQuery(sb.toString()); while (rset.next()) { Clob clob = rset.getClob("CLOB_TEXT"); Reader rd = clob.getCharacterStream(); char[] str = new char[(int) clob.length()]; while (rd.read(str) != -1) { writer.write(str); writer.flush(); } } } catch (Exception e) { e.printStackTrace(); } finally { try { if (rset != null) { rset.close(); } if (stmt != null) { stmt.close(); } } catch (Exception e) { e.printStackTrace(); } } } public static void readClobToTxt(String fileName, String content) { FileWriter writer = null; try { // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 writer = new FileWriter(fileName, true); writer.write(content); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { ImportTableDefine importTableDefine = new ImportTableDefine(); importTableDefine.readClob("d:/分区表定义.txt"); }
用数据库的话 impdp test/test directory=dump_0420 dumpfile=2.dmp sqlfile=11.sql include=TABLE/TABLE
相关文章推荐
- SQL Server数据转到Oracle 数据库(二)
- 关于Oracle 12C pdb用户无法登录的问题
- 修改oracle字符集
- Oracle录屏命令spool的使用
- Oracle Hang Manager
- Oracle Redo Log 机制小结(转载)
- Oracle之BBED之(二)-----BBED更改数据块
- 【转】JABC访问oracle数据库报ORA-12505
- oracle中的decode的使用
- PL/SQL导出导入Oracle表数据
- Oracle EXP-00091解决方法
- 图解Oracle Logminer配置使用
- Oracle存储过程update受外键约束的主键值时完整性冲突解决方式
- Oracle insert update 时间处理
- navicat for oracle 表数据导入乱码问题
- Oracle冷备份数据库及rman恢复实践
- Oracle 正确删除 archivelog文件
- Oracle全新环境,DBA该如何去做?
- 升级oracle版本流程
- Oracle 11g用户口令过期 Oracle错误代码:ORA-28002