java 兼容异构数据库_如何通过oracle 的jdbc连接异构数据库Sql server,求大神解惑...

本人学习数据库时间不长,实践经验不足,想通过oracle的gateway创建db_link实现oracle访问SQlserver数据库,但是想通过oracle—jdbc来将sql中的表在oracle中创建对应的视图,但是出现...

本人学习数据库时间不长,实践经验不足,想通过oracle的gateway创建db_link实现oracle访问SQlserver数据库,但是想通过oracle—jdbc来将sql中的表在oracle中创建对应的视图,但是出现了问题解决不了,求异构数据库方面的大神解答疑惑。报错如下:

select * from Table_1@sql

java.sql.SQLException: 类型长度大于最大值

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)

at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)

at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2202)

at oracle.jdbc.driver.T4CMAREngine.unmarshalUB4(T4CMAREngine.java:1150)

at oracle.jdbc.driver.T4CMAREngine.unmarshalSB4(T4CMAREngine.java:1125)

at oracle.jdbc.driver.T4CTTIoac.unmarshal(T4CTTIoac.java:178)

at oracle.jdbc.driver.T4C8TTIuds.unmarshal(T4C8TTIuds.java:122)

at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:133)

at oracle.jdbc.driver.T4CTTIdcb.receive(T4CTTIdcb.java:97)

at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:607)

at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)

at oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java:431)

at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:965)

at oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java:463)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1051)

at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:3897)

at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:3931)

at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1190)

at test1.main(test1.java:23)

--------------------------------------------------------------------------------------------------------

oracle中直接访问sql,没有问题。jdbc访问oracle没问题。驱动用的是ojdbc14.jar。

请教大神报错的原因是什么,如果想继续用这种方法实现,该如何解决?

//加载数据库驱动

Class.forName("oracle.jdbc.driver.OracleDriver");

//连接oracle

Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL1","sys as SYSDBA","sys");

//创建SQL句柄

// Statement sm = ct.createStatement();

Statement sm=ct.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

//执行SQL语句返回结果集

String sqltext="select * from Table_1@sql";

System.out.println(sqltext);

ResultSet rs = sm.executeQuery(sqltext);

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值