我有一个连接到SQL Server数据库的带有dblink的Oracle数据库。在Oracle中,我尝试创建SQL Server登录名和别名,如下所示:
declare
l_num_rows number;
begin
l_num_rows := dbms_hs_passthrough.execute_immediate@MYDBLINK ('CREATE LOGIN [John.Smith] WITH PASSWORD = ''B!gdaddy12''');
commit;
execute immediate 'alter session close database link MYDBLINK';
commit;
l_num_rows := dbms_hs_passthrough.execute_immediate@MYDBLINK ('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 := dbms_hs_passthrough.execute_immediate@MYDBLINK ('CREATE LOGIN [John.Smith] WITH PASSWORD = ''B!gdaddy12''');
commit;
execute immediate 'alter session close database link MYDBLINK';
commit;
l_num_rows := dbms_hs_passthrough.execute_immediate@MYDBLINK ('USE Testdb; exec sp_addalias [John.Smith], [HONCHO3]');
commit;
execute immediate 'alter session close database link MYDBLINK';
commit;
l_num_rows := dbms_hs_passthrough.execute_immediate@MYDBLINK ('USE Testdb; exec sp_addalias [John.Smith], [HONCHO3]');
commit;
execute immediate 'alter session close database link MYDBLINK';
commit;
end;有人能指出我做错了什么吗?
发布于 2012-04-01 10:55:54
你可以使用事件探查器,这是一个sqlserver支持的工具。它很简单,但只有一个图形用户界面,你可以找到如何使用DMV -> sys.traces,等等。
https://stackoverflow.com/questions/8234273
复制相似问题