У меня есть база данных 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;
Может кто-нибудь подсказать, что я делаю неправильно?