2011-11-22 45 views
3

我有一個連接到SQL Server數據庫的具有dblink的Oracle數據庫。從甲骨文,我嘗試創建一個SQL Server登錄名和別名,像這樣:使用DBMS_PASSTHROUGH從Oracle創建SQL Server別名

declare 
    l_num_rows number; 
begin 
    l_num_rows := [email protected] ('CREATE LOGIN [John.Smith] WITH PASSWORD = ''B!gdaddy12'''); 
    commit; 
    execute immediate 'alter session close database link MYDBLINK'; 
    commit; 
    l_num_rows := [email protected] ('USE Testdb; exec sp_addalias [John.Smith], [HONCHO3]'); 
    commit; 
    execute immediate 'alter session close database link MYDBLINK'; 
    commit; 
end; 

什麼情況是,登錄獲取創建,但別名不 - 無一例外被提出。如果我嘗試兩次,以創建別名如下它的工作,即登錄名和別名創建:

declare 
    l_num_rows number; 
begin 
    l_num_rows := [email protected] ('CREATE LOGIN [John.Smith] WITH PASSWORD = ''B!gdaddy12'''); 
    commit; 
    execute immediate 'alter session close database link MYDBLINK'; 
    commit; 
    l_num_rows := [email protected] ('USE Testdb; exec sp_addalias [John.Smith], [HONCHO3]'); 
    commit; 
    execute immediate 'alter session close database link MYDBLINK'; 
    commit; 
    l_num_rows := [email protected] ('USE Testdb; exec sp_addalias [John.Smith], [HONCHO3]'); 
    commit; 
    execute immediate 'alter session close database link MYDBLINK'; 
    commit; 
end; 

任何人都可以提出什麼,我做錯了什麼?

+0

您是否使用過SQL Profiler來跟蹤發送到服務器的TSQL?你使用的是哪個版本的SQL Server? – Pondlife

+0

不,我不知道如何使用SQL Profiler來做到這一點,你能解釋一下嗎?我正在使用SQL Server 2005。 – Shaz

回答

0

您可以使用Profiler,這是一個支持sqlserver的工具,它很容易,但只有一個GUI,您可以找到如何使用DMV-> sys.traces等。