синоним через дблинк

debosh_
Дата: 30.11.2012 13:19:47
Имеется странное поведение сиквел | плсиквел кода.
дано - mytable - синоним на синоним в другой базе, который в свою очередь ссылается на таблицу(вьюху) в третьей.
Выполняем:

sql> declare i number;
  2  begin
  3  select count(*) into i
  4  from mytable;
  5  end;
  6  /
select count(*) into i
*
ERROR at line 3:
ORA-06550: line 3, column 1:
PL/SQL: ORA-00980: synonym translation is no longer valid
ORA-06550: line 3, column 1:
PL/SQL: SQL Statement ignored


Но, в той же самой сессии!!!

sql> select count(*) from mytable;

  COUNT(*)
----------
       133

sql> 


WTF? в какую сторону рыть?
ps. выполняем хоть на 9.2, хоть на 11.2 - результат одинаковый.
Таргет базы - 10.х (это куда линки ведут)
pps. обойти не проблема, интересна причина именно такого поведения. Номера нот приветствуются :)
orawish
Дата: 30.11.2012 13:26:52
debosh_
Имеется странное поведение сиквел | плсиквел кода.
дано - mytable - синоним на синоним в другой базе, который в свою очередь ссылается на таблицу(вьюху) в третьей.
Выполняем:

sql> declare i number;
  2  begin
  3  select count(*) into i
  4  from mytable;
  5  end;
  6  /
select count(*) into i
*
ERROR at line 3:
ORA-06550: line 3, column 1:
PL/SQL: ORA-00980: synonym translation is no longer valid
ORA-06550: line 3, column 1:
PL/SQL: SQL Statement ignored


Но, в той же самой сессии!!!

sql> select count(*) from mytable;

  COUNT(*)
----------
       133

sql> 


WTF? в какую сторону рыть?
ps. выполняем хоть на 9.2, хоть на 11.2 - результат одинаковый.
Таргет базы - 10.х (это куда линки ведут)
pps. обойти не проблема, интересна причина именно такого поведения. Номера нот приветствуются :)

для начала - в топ популярных №4
debosh_
Дата: 30.11.2012 13:41:16
orawish,

десятки чужие.
Имею доступ только к первой - под юзьверем дблинка.
На ней плсиквел (анонимный блок) выполняется нормально.
Анти-ТОП
Дата: 30.11.2012 13:59:23
orawish
для начала - в топ популярных №4
Здесь нет именованного PL/SQL.
Viewer
Дата: 30.11.2012 14:07:51
debosh_
Имею доступ к первой...
На ней плсиквел (анонимный блок) выполняется нормально.

... состыкуйте этот пост со своим первым, и проставьте вешки - что/где ...
Viewer
Дата: 30.11.2012 14:13:55
http://practical-sql-tuning.blogspot.com/2012/03/struggling-with-ora-00980.html
Struggling with ORA-00980
If you are struggling with ORA-00980, and all things seem to be ok. Even you can use synonym with dblink in ordinary sql. But in pl/sql it raises ORA-00980.
As last resort you can try to check global name for databases from both side of dblink. They both must not match each other.
Here is query to check global name: select * from global_name;

?
debosh_
Дата: 30.11.2012 14:15:53
Viewer,

9i/11.2(№0) -> 10(№1)->10(№2)

данные лежат на 10(№2)
логинимся на №0, выполняем блок - имеем ошибку. Сиквел выполняется нормально.
логинимся на №1 , - все работает, и сиквел и процедурки/анонимки.
на №2 не логинимся - не умеем.
debosh_
Дата: 30.11.2012 14:20:24
Viewer
http://practical-sql-tuning.blogspot.com/2012/03/struggling-with-ora-00980.html
Struggling with ORA-00980
If you are struggling with ORA-00980, and all things seem to be ok. Even you can use synonym with dblink in ordinary sql. But in pl/sql it raises ORA-00980.
As last resort you can try to check global name for databases from both side of dblink. They both must not match each other.
Here is query to check global name: select * from global_name;

?


Все три разные.