DBLINK全程例子
1、1.首先在本机数据库上创建服务:









2、2.创建dblink:
在oracle安装目录下找到tnsnames.ora;
E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
打开tnsnames.ora文件在里面添加如下信息并保持;
添加类似这样的格式代码:
YMMES = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.129.20)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = YMMES) ) )
在PL/SQL等数据库语句执行软件里执行类似语句
--创建dblink sql语句create public database link net_link connect to 用户名 identified by 密码 using 'YMMES';
--删除dblink sql语句
DROP PUBLIC database link net_link
--创建dblink视图
SELECT * FROM V_WMSWLLD_ORDER@net_link where rownum<=100 ;
--创建本地视图引用dblink视图
create or replace view orderview as SELECT * FROM V_WMSWLLD_ORDER@net_link;
--查询本地试图可以查出,结果没问题
select ORDER_NO||'$'||MATERIAL_NO||'$'||PLAN_DATE||'$'||BOMNO||'$'||ORDER_DATE from orderview
3、3.执行dblink sql语句
代码里面可以直接输入
sql="select ORDER_NO||'$'||MATERIAL_NO||'$'||PLAN_DATE||'$'||BOMNO||'$'||ORDER_DATE from orderview";
如果你的系统封装了查询方法或框架基于hibernate,那就得自己创建一个实例化的对象ordeview,配置对象属性,然后将查询出来的方法接收为
List<Map<String, ?>> contents,List<OrderView> p=new List<OrderView>();
然后遍历将contents的值赋给p.
例如:
for (Map<String, ?> map : contents) {
OrderView row = new OrderView();
row.setId(Integer.parseInt(map.get("ORDER_ID").toString()));
row.setOrderNo(StringUtil.getObjString(map.get("ORDER_NO")));
row.setMaterialNo(StringUtil.getObjString(map.get("MATERIAL_NO")));
row.setBomNo(StringUtil.getObjString(map.get("BOMNO")));
row.setOrderDate(DateUtil.parse(StringUtil.getObjString(map.get("ORDER_DATE")), DateUtil.PATTERN_DATETIME_YYYY_MM_DD_HH_MM_SS));
row.setPlanDate(DateUtil.parse(StringUtil.getObjString(map.get("PLAN_DATE")), DateUtil.PATTERN_DATETIME_YYYY_MM_DD_HH_MM_SS)); orderList.add(row);
}
查询方法返回最终集合:return p;