国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java導出oracle表結構

2019-11-06 08:18:43
字體:
來源:轉載
供稿:網友

最近用到的,因為plsql是收費的,不讓用,找了很多方法終于發現了這個。

核心語句

[sql] view plain copySELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE   FROM USER_OBJECTS U   where U.OBJECT_TYPE = 'TABLE'   or U.OBJECT_TYPE = 'VIEW'   or U.OBJECT_TYPE = 'INDEX'   or U.OBJECT_TYPE = '自己寫的java方法,未做封裝。

 

[java] view plain copypackage sql;    import java.io.FileInputStream;  import java.io.FileWriter;  import java.sql.Clob;  import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.Statement;  import java.util.ArrayList;  import java.util.List;  import java.util.Properties;    public class Main {        private static final String TYPE_MARK = "-1";            private static String SQL =           "SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE " +          "FROM USER_OBJECTS U " +          "where U.OBJECT_TYPE = 'TABLE' " +          "or U.OBJECT_TYPE = 'VIEW' " +          "or U.OBJECT_TYPE = 'INDEX' " +          "or U.OBJECT_TYPE = 'PROCEDURE' " +          "or U.OBJECT_TYPE = 'SEQUENCE' " +          "or U.OBJECT_TYPE = 'TRIGGER' " +          "order by U.OBJECT_TYPE desc";            private static String URL = "jdbc:Oracle:thin:@192.168.1.2:1521:orcl";      private static String USERNAME = "abc";      private static String PASSWord = "abc";      private static String OUTFILE = "tables.sql";            /**      * @param args      * @throws Exception       * @throws        */      public static void main(String[] args) throws Exception {          // TODO Auto-generated method stub          Properties properties = new Properties();          properties.load(new FileInputStream("config.properties"));          URL = properties.getProperty("url", URL);          USERNAME = properties.getProperty("username", USERNAME);          PASSWORD = properties.getProperty("password", PASSWORD);          OUTFILE = properties.getProperty("outfile", OUTFILE);          SQL = properties.getProperty("sql", SQL);                    FileWriter fw = new FileWriter(OUTFILE);          Class.forName("oracle.jdbc.driver.OracleDriver");          Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);          Statement statement = con.createStatement();          ResultSet rs = statement.executeQuery(SQL);          Clob ddl;          String type = TYPE_MARK;          int count = 0;          List<String> list = new ArrayList<String>();          while(rs.next()) {              ddl = rs.getClob(1);              fw.write(ddl.getSubString(1L, (int)ddl.length()));              if(!rs.getString(2).equals(type)) {                  if(!type.equals(TYPE_MARK)) {                      list.add(type + "," + count);                      type = rs.getString(2);                      count = 1;                  } else {                      type = rs.getString(2);                      count ++;                  }              } else                  count ++;          }          list.add(type + "," + count);          fw.flush();          fw.close();          rs.close();          statement.close();          con.close();          for(String type1 : list)              System.out.print(type1.split(",")[0] + ":" + type1.split(",")[1] + ";");          System.out.println();      }    }  

config.properties

 

[html] view plain copyurl=jdbc:oracle:thin:@192.168.1.2:1521:orcl  username=abc  password=abc  outfile=tables.sql  sql=SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE /  FROM USER_OBJECTS U /  where U.OBJECT_TYPE = 'TABLE' /  or U.OBJECT_TYPE = 'VIEW' /  or U.OBJECT_TYPE = 'INDEX' /  or U.OBJECT_TYPE = 'PROCEDURE' /  or U.OBJECT_TYPE = 'SEQUENCE' /  or U.OBJECT_TYPE = 'TRIGGER' /  order by U.OBJECT_TYPE desc  

另外需要jdbc的oracle驅動。

學習Java的同學注意了!!! 學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群,群號碼:523047986  我們一起學Java!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南岸区| 玉山县| 全南县| 广德县| 靖西县| 原平市| 腾冲县| 舟曲县| 辽宁省| 三亚市| 衡山县| 周口市| 舟山市| 汝阳县| 浑源县| 志丹县| 汉源县| 武平县| 葵青区| 信宜市| 南召县| 仁寿县| 英超| 大丰市| 牟定县| 涟水县| 外汇| 任丘市| 五常市| 云林县| 临洮县| 凭祥市| 封丘县| 汤原县| 巴楚县| 苍南县| 焦作市| 焦作市| 济南市| 新竹县| 屯门区|