色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

通過SQL Server 2008 訪問Oracle 10g

  準備工作

  事先在需要訪問Oracle 數據庫的主機上完成以下工作:

  1. 安裝SQL Server 數據庫:SQL Server 2008 R2 Express

  2. 安裝Oracle 客戶端訪問程序:Oracle 10g Client

  3. 配置Oracle 客戶端tnsnames.ora 文件,其中需要注意文件中的數據庫別名“ORADB”,該名稱在下文創建Linked Server 時將會使用到。

ORADB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTIP)(PORT = 1521))
(CONNECT_DATA = (SID = DBNAME))
)

  4. 確保主機可以通過SQLPlus 訪問遠程Oracle 數據庫。

sqlplus

  創建Linked Server

  打開SQL Server Management Studio 進入Server Objects 列表,右鍵Linked Servers,點擊“New Linked Server...”

new

  在General 界面中填寫下面幾項內容:

  Linked server: 填寫Linked Server 名稱

  Provider:選擇Microsoft OLE DB Provider for Oracle

  Product name:填寫Oracle

  Data source:填寫上面提到的數據庫別名ORADB

input

  點擊Security ,點選“Be made using this security context”,假設Oracle 數據庫有一個名稱為admin 的用戶ID,在“Remote login”中輸入訪問帳號,點擊“OK”結束創建。

account

  完成后Linked Servers 中會看到剛創建的Oracle 數據庫鏈接。

Done

  訪問Oracle

  接下來就可以在SQL Server 端訪問Oracle 數據庫了,查詢語法如下:

SELECT * FROM LINKED_NAME..ACCOUNT_NAME.TABLE_NAME;

  結合上面的實例,假如要查詢admin 用戶下jobs 表的內容,則相應SQL 語句應為:

SELECT * FROM ORASVR..ADMIN.JOBS;

  使用上述方法進行數據查詢時,若Oracle 表有NUMBER 列時會出現轉化錯誤,這時可以將NUMBER 類型轉化為字符串(也有將該列屬性修改成NUMBER(10),為NUMBER 列設定好位數)。考慮到View 查詢等因素個人感覺還是轉為字符串的方式較為通用。

  當然如果查詢的列過多,每個NUMBER 列都轉為VARCHAR 的話工作量也的確不小,這時最好的方法就是使用OPENQUERY 函數:

SELECT * FROM OPENQUERY(LINKED_NAME,'SELECT * FROM TABLE_NAME');

  按照OPENQUERY 的語法上面SQL 語句應變為:

SELECT * FROM OPENQUERY(ORASVR,'SELECT * FROM JOBS');

  這樣我們就可以在SQL Server 端方便的訪問Oracle 數據庫,并做相應的數據調整。

it知識庫通過SQL Server 2008 訪問Oracle 10g,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 那曲县| 宁明县| 裕民县| 潢川县| 永嘉县| 兰西县| 泌阳县| 泸州市| 灵璧县| 黎城县| 石棉县| 昌邑市| 德庆县| 特克斯县| 武山县| 赤水市| 柏乡县| 阳东县| 溧水县| 温州市| 天台县| 瑞安市| 定襄县| 丰镇市| 蒙阴县| 郎溪县| 海宁市| 修文县| 开封县| 吕梁市| 靖远县| 建瓯市| 青川县| 韩城市| 佳木斯市| 八宿县| 张家口市| 石河子市| 泽普县| 临漳县| 永济市|