Использование DBMS_PASSTHROUGH для создания псевдонимов SQL Server из Oracle - PullRequest
3 голосов
/ 23 ноября 2011

У меня есть база данных Oracle с dblink, которая подключается к базе данных SQL Server.В 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;

Может кто-нибудь подсказать, что я делаю неправильно?

1 Ответ

0 голосов
/ 01 апреля 2012

вы можете использовать Profiler, это инструмент, который sqlserver support.it прост, но только с графическим интерфейсом, вы можете найти, как использовать DMV -> sys.traces и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...