Как узнать, какие таблицы / представления / синонимы используются в хранимой процедуре - PullRequest
4 голосов
/ 22 июня 2010

С помощью запросов Oracle можно узнать, какие представления / синонимы / таблицы используются хранимой процедурой?

В PL / SQL Developer, если вы свернете хранимую процедуру, она покажет «Ссылки», в которой показаны все таблицы / представления / синонимы, которые использует хранимая процедура.

Я пытаюсь реализовать эту функцию в сценарии, который пригодится.

Хотите знать, если кто-нибудь знает скрипт, который будет извлекать мне все синонимы / представления / таблицы, которые использует хранимая процедура?

Ответы [ 2 ]

7 голосов
/ 22 июня 2010

Информация, которую вы ищете, находится в представлении user_dependencies / all_dependencies.

1 голос
/ 20 ноября 2014

Ответ @Rene правильный, но я считаю, что это требует дополнительного объяснения.При выборе значения all_dependencies вы можете запустить запрос, подобный приведенному ниже, который должен дать вам все объекты, которые ссылаются на ваш SP.

SELECT *
FROM all_dependencies
WHERE "REFERENCED_NAME" = 'vcustomeraddresses';

Вы можете быть удивлены, когда он вернется с пустыми руками.* Это потому, что оракул чувствителен к случаю.Это означает, что у вас есть для простого отключения чувствительности к регистру (если используемая вами версия oracle превышает 10g r2)

ALTER SESSION SET NLS_COMP=LINGUISTIC;
ALTER SESSION SET NLS_SORT=BINARY_CI;

или upper обе стороны при сравнении

SELECT *
FROM all_dependencies
WHERE upper("REFERENCED_NAME") = upper('vcustomeraddresses');

Надеюсь, это сэкономит вам время и разочарование.

...