一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java導出oracle表結構實例詳解

Java導出oracle表結構實例詳解

2020-08-23 15:10Java之家 Java教程

這篇文章主要介紹了 Java導出oracle表結構實例詳解的相關資料,需要的朋友可以參考下

 Java導出oracle表結構實例詳解

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

核心語句

?
1
2
3
4
5
6
7
8
9
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

自己寫的Java方法,未做封裝。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package 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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
url=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驅動。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 丁香婷婷在线视频 | 成人影院免费在线观看 | 10个免费货源网站 | 插入逼| 国产精品视频2021 | 国产一区二区三区久久精品 | bt7086新片速递亚洲最新合集 | 日本欧美大码a在线视频播放 | 日韩精品免费一区二区 | 操儿子| 五月天色小说 | 免费人成网址在线观看国内 | 无套内射在线观看THEPORN | 福利社在线免费观看 | 亚洲精品国精品久久99热 | 亚洲精品久久麻豆蜜桃 | 四虎影音 | 久久精品中文闷骚内射 | 欧美vpswindowssex| 国产欧美日韩专区 | 国产欧美久久久精品影院 | 极品久久 | 爽好舒服使劲添高h视频 | 国产成人综合精品一区 | 国产精品久久久久无毒 | 青草园网站在线观看 | 久久伊人久久 | 免费网站看v片在线香蕉 | 2048论坛永久入口 原创合集 | 风间由美被义子中文字幕 | 91免费视频国产 | 欧美一级v片 | 久久久精品免费视频 | 国产在线精品一区二区高清不卡 | 成人免费观看www视频 | 暖暖视频免费观看视频中国.韩剧 | 国产精品露脸国语对白99 | chinese国产老太性 | 亚洲乱亚洲乱妇41p国产成人 | 美女脱了内裤打开腿让你桶爽 | 色哟哟观看 |