2014년 7월 11일 금요일

오라클 에서 bfile에 저장하고 읽어 오는 예제[오라클자바커뮤니티 bfile 예제,CREATE DIRECTORY

오라클 에서 bfile에 저장하고 읽어 오는 예제[오라클자바커뮤니티 bfile 예제,CREATE DIRECTORY


오라클 에서 bfile에 저장하고 읽어 오는 예제
 
CREATE DIRECTORY TEST_DIR AS 'c:/temp/filedir'
CREATE TABLE test_dir_table (x varchar2 (30), b bfile

INSERT INTO test_dir_table values('1', bfilename(TEST_DIR, 'test.jpg') )
 
먼저 오라클 서버에 /temp/filedir 디렉토리를 만들고 test.jpg 라는 파일을 넣고 위와 같이 등록한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="oracle.sql.BFILE"%>
<%@page import="java.io.InputStream"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@page import="oracle.jdbc.driver.OracleResultSet"%>
<%@page import="oracle.jdbc.pool.OracleDataSource"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <%
    try{
   
        OracleDataSource ods = new OracleDataSource();
   
        ods.setDriverType("thin");
        ods.setServerName("localhost");
        ods.setDatabaseName("oracle10");
        ods.setPortNumber(1521);
        ods.setUser("scott");
        ods.setPassword("tiger");
   
        Connection con = ods.getConnection();
        con.setAutoCommit( false );
        String query = "select * from test_dir_table";
        PreparedStatement stmt = con.prepareStatement( query );
   
        ResultSet rset = stmt.executeQuery();
   
        BFILE bfile = null;
   
        while( rset.next() ) {
            bfile = ((OracleResultSet)rset).getBFILE(2);
        }
   
        rset.close();
        stmt.close();
   
        bfile.openFile();
        InputStream instream = bfile.getBinaryStream();
   
        BufferedInputStream bfis = new BufferedInputStream( instream );
   
        out.clear();
   
        out=pageContext.pushBody();
        BufferedOutputStream bfos = new BufferedOutputStream( response.getOutputStream() );
   
        byte bytes[] = new byte[4096];
        int read = 0;
   
        try{
            while( ( read = bfis.read( bytes ) ) != -1 ) {
                bfos.write( bytes );
            }
        }catch ( Exception e ){
            throw new Exception();
        }finally{
            if( instream != null ) {
                instream.close();
            }
            if( bfis != null ) {
                bfis.close();
           }
           if( bfos != null ) {
               bfos.close();
          }
    }
 
    ods.close();
    con.close();
   }catch( Exception ex ){
        System.out.println( ex.toString() );
  }
%>
</body>
</html>
 
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(7/14)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/14)[기업100%환급]SQL기초에서 Schema Object까지
(7/14)[기업100%환급]안드로이드개발자과정
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(7/15)SQL기초에서실무까지
(7/15)안드로이드개발자과정
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/17)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정

주말(10:00~17:50) 개강
(7/12)SQL초보에서 Schema Object까지
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/19)C#,ASP.NET마스터
(7/19)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기