У меня есть таблица с именем AP.AP_BATCHES_ALL
:
SELECT
OWNER,
OBJECT_NAME,
OBJECT_TYPE
FROM
ALL_OBJECTS
WHERE
OWNER = 'AP' AND OBJECT_NAME = 'AP_BATCHES_ALL'
+-------+----------------+-------------+
| OWNER | OBJECT_NAME | OBJECT_TYPE |
+-------+----------------+-------------+
| AP | AP_BATCHES_ALL | TABLE |
+-------+----------------+-------------+
Я могу запросить эту таблицу:
SELECT * FROM AP.AP_BATCHES_ALL
200 000 + записей возвращено.
Теперь есть синоним APPS.AP_BATCHES
, который ссылается на вышеупомянутую AP.AP_BATCHES_ALL
таблицу:
SELECT * FROM ALL_SYNONYMS WHERE OWNER = 'APPS' AND SYNONYM_NAME = 'AP_BATCHES'
+-------+--------------+-------------+----------------+---------+
| OWNER | SYNONYM_NAME | TABLE_OWNER | TABLE_NAME | DB_LINK |
+-------+--------------+-------------+----------------+---------+
| APPS | AP_BATCHES | AP | AP_BATCHES_ALL | |
+-------+--------------+-------------+----------------+---------+
Теперь, когда я запрашиваю APPS.AP_BATCHES
(синоним), я получаю нет записей:
SELECT * FROM APPS.AP_BATCHES
Записи не возвращаются, хотя APPS.AP_BATCHES
является просто синонимом для AP.AP_BATCHES_ALL
(таблица, содержащая более 200 000 записей).
Почему нетне запрашивает против синонима , возвращая записи, когда запросы против ссылочной таблицы делают?