<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dengues Studio: Google Group:http://groups.google.com/group/dengues; QQ Group:24885404.
    近來用Dengues測試了一個Oracle的Blob類型數(shù)據(jù)轉(zhuǎn)移,即同一數(shù)據(jù)庫下的表之間的Blob類型字段,不同數(shù)據(jù)庫不同表的Blob字段。但是在測試后者的時候,會發(fā)生:ORA-00942: 表或視圖不存在。后來發(fā)現(xiàn)使用java.sql.PreparedStatement pstmt;pstmt.setObject(2,blob);這個方法在傳入的是blob實例的時候再執(zhí)行.
    先用下面方法新建一個表:在SQL*Plus里面執(zhí)行:
    create table T_IMAGE(T_IMAGE_ID varchar(20),T_IMAGE_BLOB BLOB);

    并插入Blob:
     1 public static void createBLOB() {
     2         OutputStream bos = null;
     3         FileInputStream inputStream = null;
     4         ResultSet rs2 = null;
     5         PreparedStatement ps2 = null;
     6         Connection conn = null;
     7         try {
     8             Class.forName("oracle.jdbc.driver.OracleDriver");
     9             conn = DriverManager.getConnection(
    10                     "jdbc:oracle:thin:@localhost:1521:dengues""root""root");
    11 
    12             conn.setAutoCommit(false);
    13             // 第一步:插入一個空的BLOB
    14             String sql1 = "insert into T_IMAGE(T_IMAGE_ID,T_IMAGE_BLOB) values ('24',EMPTY_BLOB())";
    15             PreparedStatement ps1 = conn.prepareStatement(sql1);
    16             ps1.executeUpdate();
    17             System.out.println("insert success.");
    18             ps1.close();
    19 
    20             // 第二步:取出該CLOB
    21             String sql2 = "select T_IMAGE_BLOB from T_IMAGE where T_IMAGE_ID='24' for update";
    22             ps2 = conn.prepareStatement(sql2);
    23             rs2 = ps2.executeQuery();
    24             while (rs2.next()) {
    25                 oracle.sql.BLOB blob = (oracle.sql.BLOB) rs2.getBlob(1);
    26                 bos = blob.getBinaryOutputStream();
    27                 inputStream = new FileInputStream("c:/ibm.xml");
    28                 byte[] b = new byte[blob.getBufferSize()];
    29                 int len = 0;
    30                 while ((len = inputStream.read(b)) != -1) {
    31                     bos.write(b, 0, len);
    32                 }
    33                 bos.flush();
    34                 bos.close();
    35             }
    36             rs2.close();
    37             inputStream.close();
    38             ps2.close();
    39             conn.setAutoCommit(true);
    40             conn.commit();
    41             conn.close();
    42         } catch (Exception e) {
    43             e.printStackTrace();
    44         }
    45     }
    46 

    但是將這條記錄轉(zhuǎn)換到另一個數(shù)據(jù)庫testdb,先取出dengues數(shù)據(jù)庫里面的數(shù)據(jù),并使用pstmt.setObject(2,blob)但是這樣執(zhí)行pstmt.executeUpdate()。就會出現(xiàn)異常。估計這個是Oracle驅(qū)動的一個Bug。
    為了改正這個問題:pstmt.setObject(2,cBLOB(blob));
    下面是cBLOB的實現(xiàn):
     1 public static Object cBLOB(Object in) {
     2         Object blob = in;
     3         try {
     4             if (in instanceof oracle.sql.BLOB) {
     5                 oracle.sql.BLOB bo = ((oracle.sql.BLOB) in);
     6                 InputStream bis = bo.getBinaryStream();
     7                 BufferedInputStream ins = new BufferedInputStream(bo
     8                         .getBinaryStream());
     9                 int bufferSize = (int) bo.length();
    10                 byte[] bt = new byte[bufferSize];
    11                 try {
    12                     ins.read(bt, 0, bufferSize);
    13                 } catch (IOException e) {
    14                     e.printStackTrace();
    15                 }
    16                 bis.close();
    17                 blob = bt;
    18             }
    19         } catch (Exception e) {
    20             e.printStackTrace();
    21         }
    22         return blob;
    23     }
    就是將這個BLOB實例轉(zhuǎn)換為一個byte[]返回給傳入.



    Dengues論壇(http://groups.google.com/group/dengues/),一個很好的Eclipse開發(fā)者樂園.

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    Dengues Studio: Google Group:http://groups.google.com/group/dengues; QQ Group:24885404.
    主站蜘蛛池模板: 亚洲一本大道无码av天堂| 日韩成全视频观看免费观看高清| 亚洲?v无码国产在丝袜线观看 | 亚洲av无码成人黄网站在线观看| xxxxx做受大片视频免费| 免费**毛片在线播放直播| 久久精品国产亚洲AV未满十八| 99久久免费精品国产72精品九九| 亚洲中文字幕精品久久| 永久中文字幕免费视频网站| 亚洲另类自拍丝袜第五页| 国产精品极品美女免费观看| 免费的黄色的网站| 亚洲无码日韩精品第一页| 国产精品午夜免费观看网站| 亚洲人JIZZ日本人| 男人都懂www深夜免费网站| 中文字幕亚洲免费无线观看日本| 最近中文字幕免费mv在线视频| 亚洲国产成人久久| 成年人在线免费看视频| 国产成人亚洲综合无| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 91频在线观看免费大全| 亚洲精品无码人妻无码| 亚洲国产精品无码久久久久久曰| 久久久WWW成人免费精品| 亚洲五月六月丁香激情| 国产精品无码免费播放| 免费无码AV一区二区| 亚洲欭美日韩颜射在线二| 9420免费高清在线视频| 亚洲一区二区三区成人网站| 国产国产人免费视频成69大陆| 国产精品免费看久久久香蕉| 亚洲黄色在线视频| 国产美女无遮挡免费网站| 青青操免费在线视频| 亚洲国产人成在线观看| 亚洲国产精品丝袜在线观看| 97精品免费视频|