oracle中如何創建dblink
創建dblink一般有兩種方式,不過在創建dblink之前用戶必須有創建dblink的權限。
想知道有關dblink的權限,以sys用戶登錄到本地數據庫: select * from user_sys_privs t where *ege like upper('%link%'); 1 SYS CREATE DATABASE LINK NO 2 SYS DROP PUBLIC DATABASE LINK NO 3 SYS CREATE PUBLIC DATABASE LINK NO 可以看出在數據庫中dblink有三種權限CREATE DATABASE LINK(所創建的dblink只能是創建者能使用,別的用戶使用不了),CREATE PUBLIC DATABASE LINK(public表示所創建的dblink所有用戶都可以使用),DROP PUBLIC DATABASE LINK。 在sys用戶下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK權限授予給你的用戶 grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott; 然后以scott用戶登錄本地數據庫 1.創建dblink的第一種方式,是在本地數據庫*文件中配置了要遠程訪問的數據庫。
create public database link to_bylw connect to scott identified by tiger using 'bylw'; 其中to_bylw是你創建的dblink名字,bylw是遠程數據庫的實例名,scott/tiger是登錄到遠程數據庫的用戶/密碼。然后在本地數據庫中通過dblink訪問遠程數據庫'bylw'中*_test表,sql語句如下所示 select * from *_test@to_bylw; 2.創建dblink的第二種方式,是在本地數據庫*文件中沒有配置要訪問的遠程數據庫, create database link to_test connect to scott identified by tiger using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = bylw) ) )'; 第二種是把第一種配置在*文件中的信息,直接放在創建dblink語句后面。
第一種情況*文件中信息如下: bylw = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) (CONNECT_DATA =。
oracle中如何創建dblink
創建dblink一般有兩種方式,不過在創建dblink之前用戶必須有創建dblink的權限。想知道有關dblink的權限,以sys用戶登錄到本地數據庫:
select * from user_sys_privs t
where *ege like upper('%link%');
1 SYS CREATE DATABASE LINK NO
2 SYS DROP PUBLIC DATABASE LINK NO
3 SYS CREATE PUBLIC DATABASE LINK NO
可以看出在數據庫中dblink有三種權限CREATE DATABASE LINK(所創建的dblink只能是創建者能使用,別的用戶使用不了),CREATE PUBLIC DATABASE LINK(public表示所創建的dblink所有用戶都可以使用),DROP PUBLIC DATABASE LINK。
在sys用戶下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK權限授予給你的用戶
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
然后以scott用戶登錄本地數據庫
1.創建dblink的第一種方式,是在本地數據庫*文件中配置了要遠程訪問的數據庫。
create public database link
to_bylw connect to scott identified by tiger using 'bylw';
其中to_bylw是你創建的dblink名字,bylw是遠程數據庫的實例名,scott/tiger是登錄到遠程數據庫的用戶/密碼。然后在本地數據庫中通過dblink訪問遠程數據庫'bylw'中*_test表,sql語句如下所示
select * from *_test@to_bylw;
2.創建dblink的第二種方式,是在本地數據庫*文件中沒有配置要訪問的遠程數據庫,
create database link to_test
connect to scott identified by tiger
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) (CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bylw) ) )'; 第二種是把第一種配置在*文件中的信息,直接放在創建dblink語句后面。第一種情況*文件中信息如下: bylw = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) (CONNECT_DATA =
存儲過程里面建立dblink
create or replace procedure v_test
as
v_sql varchar2(2000);
begin
v_sql := 'create database link linkfwq
connect to fzept identified by neu
using ''(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)''';
execute Immediate v_sql;
end;
這樣即可,望采納!
Oracle是怎么建立DBLINK的
在本地(新疆)的分公司也有一個數據庫,其SID是SIDXJ,用戶:userxj,密碼:xj123,新疆的IP地址是:192。
168。1。
100。 要將本地新疆的SIDXJ數據庫中訪問到北京的數據庫SIDBJ中的數據。
也就是說,在sidxj的數據庫中,用戶userxj(192。 168。
1。100)需要建立DBLINK,以userbj的用戶身份訪問sidBJ(192。
168。1。
101)中的數據。 測試環境:兩個數據庫均建立在WINXP上,ORACLE的版本均為Oracle817 建立環境時,要注意關閉兩臺計算機上的Windows的防火墻,否則,會出現能ping通,但Oracle連接不通的情況。
1、問:如何返回數據庫的GLOBAL_NAME? 執行SELECT * FROM GLOBAL_NAME; 北京的數據庫的GLOBAL_NAME為SIDBJ。US。
ORACLE。COM 新疆的數據庫的GLOBAL_NAME為SIDXJ 2、問:如何查看Global_name參數是true還是False? 答:執行:SQL> show parameter global_name; 執行的結果如下: NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ global_names boolean TRUE 表示該參數是true。
該參數為true時,你在本地建立的DBLINK的名稱必須和遠程的Global_name一致才行。 3、問:查看遠程數據徊是否支持高級復制功能。
答:通過查看v$option視圖,如果其中Advanced replication為TRUE,則支持高級復制功能;否則不支持。 執行語句為:select * from v$option; 也可以執行select * from v$option where PARAMETER='Advanced replication'語句, 如何返回值為True,那么就是支持,否則就是不支持。
在兩個數據庫中都是檢查是否支持才行。
存儲過程里面建立dblink
create or replace procedure v_testas v_sql varchar2(2000);begin v_sql := 'create database link linkfwq connect to fzept identified by neu using ''(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = fjept) ) )'''; execute Immediate v_sql;end;這樣即可,望采納!。
如何創建從SQL到Oracle的DBlink
1、利用Net Manager創建服務,具體步驟如下圖片所示:打開Oracle安裝客戶端的時候所裝好的Net Manager輸入網絡服務名,可以隨便輸入選擇TCP/IP(Internet協議)在這里,主機名可以輸入IP地址,不過如果IP不確定,且可能會經常變動的話,輸入主機的名字也可以;輸入完主機名字后,輸入oracle的端口號,如下所示:輸入SID:用oracle的用戶名和密碼進行測試如果測試成功,則關閉當前畫面,注意要保存哦!完成這個步驟,會在*中產生連接所需要的信息,例如服務器IP、SID,端口號等。
2、此時,oracle的信息已經基本上OK了,此時需要做的就是建立DBlink了。具體步驟如下所示:打開SQL Management Studio,如下所示來建立Link Server:點擊上圖中的New Linked Server,出現以下畫面:按照上圖中的信息輸入,其中Linked server可以隨便填寫,Provider則固定選我圖中的OLE DB,Product Name處填入之前在Oracle的Net Manager中輸入的名字,Data Source也填入Net Manager中輸入的名字。
完成后切換到Security頁簽,如下圖所示:注意在上圖中的最下面選擇“Be made using this security context”,然后在remote login處輸入oracle的用戶名,在with password中輸入該用戶名對應的password,完成后保存即可。3、上面的設定都已經完成好之后,下面就是驗證是否成功了。
驗證的時候,只要直接寫一個sql查詢oracle中的資料即可,如下所示:注意在上圖中,from的后面,table的名字要在前面加上linked server的名字,然后后面有兩個小點,再然后才是oracle中用戶的名字,最后就是表的名字了。其中特別需要注意的時候,用戶的名字和表的名字都是要全部大寫的。
關于第二步中,在SQL可視化工具中的操作也可以通過以下SQL來進行:EXEC *_addlinkedserver @server = N'link_peter_oracle',@srvproduct = N'peter_oracle', @provider = N'MSDAORA', @datasrc = N'peter_oracle',@provstr = N'User ID=scott;Password=tiger'--其中@srvproduct、@datasrc寫實例名;@provstr為oracle的用戶名和密碼。
如何創建從SQL到Oracle的DBlink
public List<Emp> findAll() {
//創建連接
Connection conn =
*nection();
//創建SQL
String sql = "select * from t_emp1";
try {
//創建PreparedStatement
PreparedStatement ps =
*eStatement(sql);
//執行SQL
ResultSet rs = *eQuery();
//遍歷結果集
List<Emp> list = new ArrayList<Emp>();
while(*()) {
Emp emp = new Emp();
*(*("id"));
*e(*ing("name"));
*ary(*ble("salary"));
*(*("age"));
*(emp);
}
return list;
} catch (SQLException e) {
throw new RuntimeException(
"查詢員工失敗.", e);
} finally {
//關閉連接
*(conn);
}
}
如何創建DBLink 連接sql server 2005 和2000
A服務器為64位機器,安裝64位SQL Server2005;
B服務器為32位機器,安裝32位SQL Server 2003 sp4;
A服務器數據庫創建DB link連接B服務器數據,DBlink測試通過。
但是通過A服務器的數據庫客戶端查詢B服務器的數據(select * from *),就會爆出如下錯誤:
鏈接服務器"Bserver"的 OLE DB 訪問接口 "SQLNCLI" 返回了消息 "Unspecified error"。
鏈接服務器"Bserver"的 OLE DB 訪問接口 "SQLNCLI" 返回了消息 "在該服務器上找不到完成該操作所需的存儲過程。 請與系統管理員聯系。"。
Msg 7311, Level 16, State 2, Line 1
無法獲取鏈接服務器 "Bserver" 的 OLE DB 訪問接口 "SQLNCLI" 的架構行集 "DBSCHEMA_TABLES_INFO"。該訪問接口支持該接口,但使用該接口時返回了失敗代碼。
g了一下,終于解決了,這其實是微軟的一個bug,因為在sqlserver 2003sp4中有個補丁SQL語句,但是在升級過程中沒有自動執行,所以需要我們手動去執行。
該SQL文件位于sqlserver 2003sp4的安裝目錄下(搜索一下),名字為*;
執行方法也有點另類,需要在cmd中執行:osql -E -S BserverName -i <Location>\*
執行過程會一直在刷屏,大概需要20s的時間,最后會提示:completed successfully!
【參考】http://**?scid=kb%3Bzh-cn%3B906954&x=15&y=5
plsql 怎么建立dblink
語法如下: create public database link dblinkname connect to username identified by password using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =servicename)))';其中username 是用戶名 , password是數據庫的密碼,database_ip是數據庫ip地址,servicename是服務名。
轉載請注明出處華閱文章網 » 創建dblink語句