読者です 読者をやめる 読者になる 読者になる

JDBC(CTAS編)

CLOBを含む1億件の表をJDBC経由でCTASする。

 

 

■前提
・「C:\jdbc」のディレクトリを掘る。
JAVAのソースと「ojdbc7.jar」は「C:\jdbc」に配置

 

SQL*PLUSからCLOBを含む表とデータの用意。
SQL>
SQL>
SQL> CREATE TABLE SCOTT.TEST
  2  (DEPTNO NUMBER(38),
  3  DNAME CHAR(14) ,
  4  CLOB_DATA CLOB);

表が作成されました。
SQL>
SQL>
SQL> begin
  2  for i in 1..100000000 loop
  3  insert into SCOTT.TEST (DEPTNO,DNAME,CLOB_DATA)
  4  values (i,DBMS_RANDOM.STRING('p',8),'abcdefghijklmnopqrstuvwxyz');
  5  end loop;
  6  commit;
  7  end;
  8  /

PL/SQLプロシージャが正常に完了しました。
SQL>
SQL>

 


▼下記のソースを用意(JavaDataAccess.java)

// JDBC APIをインポート
import java.sql.*;

class JavaDataAccess {
  public static void main (String args[])
  throws SQLException, ClassNotFoundException {

    // Oracle JDBC Driverのロード
    Class.forName("oracle.jdbc.driver.OracleDriver");

    // Oracleに接続
    Connection conn =
    DriverManager.getConnection
    ("jdbc:oracle:thin:@localhost:1521:o11203", "scott", "tiger");

    // ステートメントを作成
    Statement stmt = conn.createStatement();

    // 問合せの実行
    ResultSet rset = stmt.executeQuery("CREATE TABLE SCOTT.TEST2 AS SELECT * FROM SCOTT.TEST");

    // 結果セットをクローズ
    rset.close();

    // ステートメントをクローズ
    stmt.close();

    // 接続をクローズ
    conn.close();
  System.out.println("処理が完了しました");
  }
}


コンパイルと実行
c:\jdbc>javac JavaDataAccess.java
c:\jdbc>java -cp c:\jdbc\ojdbc7.jar;c:\jdbc JavaDataAccess
処理が完了しました


以上