DBLINK全程例子?

前2天需要做個接口,用DBLINK方式調用MES的數據庫視圖,於是就上網查了下,結果還是遇到了不少問題。

工具/原料

ORCAL數據庫,PL/SQL,ECLIPSE

方法/步驟

1.首先在本機數據庫上創建服務:

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

DBLINK全程例子

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 [email protected]_link where rownum<=100 ;

--創建本地視圖引用dblink視圖

create or replace view orderview as SELECT * FROM [email protected]_link;

--查詢本地試圖可以查出,結果沒問題

select ORDER_NO '$' MATERIAL_NO '$' PLAN_DATE '$' BOMNO '$' ORDER_DATE from orderview

3.執行dblink sql語句

代碼裡面可以直接輸入

sql="select ORDER_NO '$' MATERIAL_NO '$' PLAN_DATE '$' BOMNO '$' ORDER_DATE from orderview";

如果你的系統封裝了查詢方法或框架基於hibernate,那就得自己創建一個實例化的對象ordeview,配置對象屬性,然後將查詢出來的方法接收為

List > contents,List p=new List ();

然後遍歷將contents的值賦給p.

例如:

for (Map 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;

注意事項

本方法經乃項目經驗,如有雷同,純屬巧合。

相關問題答案