用java从oracle取数

此文举例说明了如何用java从oracle获取数组,并解决了字符显示hex乱码的问题

/*
drop table varray_table;
drop type num_varray;

CREATE TYPE num_varray AS VARRAY(10) OF VARCHAR2(12)
/
CREATE TABLE varray_table (col1 num_varray);
INSERT INTO varray_table VALUES (num_varray('你好', 'abc'));

select * from varray_table;

*/

import java.sql.*;
//import java.math.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;

class Array1
{

public static void main(String args[]) throws Exception
{
  int oracleId = CharacterSet.ZHS16GBK_CHARSET;
  CharacterSet dbCharset = CharacterSet.make(oracleId);

  DriverManager.registerDriver
                (new oracle.jdbc.driver.OracleDriver());

  Connection conn =
      DriverManager.getConnection
                       ("jdbc:oracle:thin:@10.9.200.58:1521:db01",
                        "mytest",
                        "mytest");

  Statement stmt = conn.createStatement();

  ResultSet rs = stmt.executeQuery("SELECT * FROM varray_table");

  while (rs.next()) {
    ARRAY my_array = ((OracleResultSet)rs).getARRAY(1);

    // return the SQL type names, integer codes,
    // and lengths of the columns
    System.out.println ("Array is of type " + my_array.getSQLTypeName());
    System.out.println ("Array element is of typecode " + my_array.getBaseType());
    System.out.println ("Array is of length " + my_array.length());

    // get Array elements
    String[] values = (String[]) my_array.getArray();
    for (int i = 0; i < values.length; i++)
    {
       oracle.sql.CHAR out_value = new oracle.sql.CHAR(values[i], dbCharset);
       System.out.println(">> index " + i + " = " + out_value);
    }


  }

  rs.close();
  stmt.close();
  conn.close();
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值