Oracle對資料庫的安全比較敏感,所以對於跨庫訪問資料庫有點麻煩.
一,訪問其它庫辦法
簡單說先建個串連,然後再select * from 串連 就OK
文法:
CREATE DATABASE LINK linkname CONNECT TO username IDENTIFIED BY password USING sqlnet_string;
說明:
linkname 指的是串連名字,可隨便取一個
username 串連目標資料庫的使用者名稱
passwrod 串連目標資料庫的密碼
sqlnet_string 指的串連資料庫的名字,注意一定加上引號;
例子:
CREATE DATABASE LINK linkA CONNECT TO test IDENTIFIED BY test USING 'test.ly';
建一個名字為linkA串連,指向test.ly資料庫,登陸資料庫帳號test 密碼test
完成以上之後就可以通過 select * from 表名@linkA ; 這樣方法來訪問.
二,還可以使用 替代名 來簡化訪問名字
CREATE SYNONYM synonym_name FOR tablename@linkname;
說明:
synonym_name 代替名字
tablename@linkname 需要被代替的字串,
這裡要說一下,代替其實就是做個字串替換工作. 也就是說能把普通的字串也做個替換動作;
例子:
CREATE SYNONYM re1 FOR test.table1;
這樣之後,就可以通過 select * from re1; 來訪問test.table1這個表了.要注意一點,
表的方案表名一定要寫上.
CREATE SYNONYM re1 FOR tablename@linkname
這樣做就是可以將一個串連替換成re1,同樣可以用 select * from re1 來訪問.
example:
使用這個的前提條件是在當前的Oracle的.net manager裡建立了到目標庫的別名prd1
CREATE DATABASE LINK linkA CONNECT TO warehse1 IDENTIFIED BY warehse1 USING 'prd1';
select * from sku@linkA