Trafodion 通过TMUDF访问远程Oracle数据库
2016-12-27 09:34
393 查看
在之前写的另外一篇文章“ Trafodion TMUDF(Table-Mapping UDF) ” http://blog.csdn.net/post_yuan/article/details/53173964, 我们提到了什么是Trafodion的Table-Mapping UDF以及如何去实现一个简单的TMUDF。
这篇文章介绍一个Build-In的TMUDF,可以用于访问远程的数据库,包括Trafodion,Oracle等其他支持JDBC的相关数据库。详细代码及测试用例请参考https://github.com/apache/incubator-trafodion/commit/a34771927c1afd3348fb4609b4c2944f5c47507a
基本用法如下,
下面通过实例介绍如何获取远端的Trafodion数据库数据和Oracle数据库数据。
1 访问Trafodion数据库
2 访问Oracle数据库
(注:如果需要访问远程非Trafodion数据库,需要添加具体数据库对应的jdbc驱动包,具体方法参考下面第3点)
3 如何在Trafodion环境添加Oracle JDBC驱动包
1.选择一台Trafodion节点,把下载的ojdbc6.jar包拷贝到$MY_SQROOT/udr/external_libs下
2.pdcp把上述节点的ojdbc6.jar包复制到其他Trafodion节点
这篇文章介绍一个Build-In的TMUDF,可以用于访问远程的数据库,包括Trafodion,Oracle等其他支持JDBC的相关数据库。详细代码及测试用例请参考https://github.com/apache/incubator-trafodion/commit/a34771927c1afd3348fb4609b4c2944f5c47507a
基本用法如下,
select ... from udf(JDBC( <name of JDBC driver jar>, <name of JDBC driver class in the jar>, <connection string>, <user name>, <password>, <statement_type>, <sql statement 1> [ , <sql statements 2 ...n> ] )) ... The first 7 arguments are required and must be string literals that are available at compile time. Statement type: 'source': This statement produces a result (only type allowed at this time) (may support "target" to insert into a table via JDBC later)
下面通过实例介绍如何获取远端的Trafodion数据库数据和Oracle数据库数据。
1 访问Trafodion数据库
SQL>select * from udf(jdbc('jdbcT4.jar', 'org.trafodion.jdbc.t4.T4Driver', 'jdbc:t4jdbc://10.10.11.12:23400/:', 'trafodion', 'traf123', 'source', 'select * from (values (''Hello'', ''World''), (''Hallo'', ''Welt'')) T(a,b)')); A B ---------- ---------- Hello World Hallo Welt --- 2 row(s) selected
2 访问Oracle数据库
(注:如果需要访问远程非Trafodion数据库,需要添加具体数据库对应的jdbc驱动包,具体方法参考下面第3点)
SQL>select * from udf(jdbc('ojdbc6.jar', 'oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@10.10.11.16:1521:esgyn', 'system', '12345', 'source', 'select * from dual')); DUMMY ----- X --- 1 row(s) selected. SQL>select * from udf(jdbc('ojdbc6.jar', 'oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@10.10.11.16:1521:esgyn', 'system', '12345', 'source', 'select to_char(a) as a,to_char(b) as b from test_jdbcudr')); A B -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 1 2 --- 1 row(s) selected.
3 如何在Trafodion环境添加Oracle JDBC驱动包
1.选择一台Trafodion节点,把下载的ojdbc6.jar包拷贝到$MY_SQROOT/udr/external_libs下
[trafodion@n12 external_libs]$ pwd /home/trafodion/esgynDB-2.2.0/udr/external_libs [trafodion@n12 external_libs]$ ll total 2676 -rw-rw-r-- 1 trafodion trafodion 2739670 Dec 26 20:40 ojdbc6.jar
2.pdcp把上述节点的ojdbc6.jar包复制到其他Trafodion节点
[trafodion@n12 external_libs]$ pdcp $MY_NODES ojdbc6.jar $PWD
相关文章推荐
- Oracle数据库通过DBLINK实现远程访问
- Spring Framework 开发参考手册 之十六 通过Spring使用远程访问和web服务
- 通过Modem拨号建立RAS远程访问。
- 通过Spring使用远程访问和web服务
- 如何通过域名访问远程SQLSERVER服务器
- 通过.NET访问 Oracle数据库
- 通过.NET访问Oracle数据库
- oracle 10g中dblink访问远程oracle数据库
- 通过Spring使用远程访问和web服务(转载)
- VC下ADO访问远程ORACLE数据库
- 彻底解决 sql 2005 不能通过ip地址远程访问
- 在Java程序中,通过JDBC访问Oracle数据库的步骤
- ora-22992 通过DBLINK 访问远程CLOB表问题
- 通过Spring进行远程服务访问
- 通过代码对远程机器的磁盘信息进行访问的方法
- 实验1 远程客户机能否通过共享内存访问服务器
- 通过ODBC远程访问MySQL的一种简便方法
- 通过VB访问远程计算机注册表的方法
- 通过.NET访问 Oracle数据库
- 开发Axis2服务访问oracle数据库(远程) 关于错误Class Not found : oracle.jdbc.driver.OracleDriver 推荐