поиск таблиц и столбцов, используемых в oracle sql представлении - PullRequest
1 голос
/ 21 февраля 2020

Есть ли простой способ найти таблицы и столбцы, используемые для создания представления?

Я открыл все представления и попытался найти таблицы и столбцы, используемые в нем, но я чувствую, что мог что-то пропустить. Есть ли команды, которые отображают все столбцы и таблицы, используемые в представлении?

Ответы [ 2 ]

3 голосов
/ 21 февраля 2020

Открыть представление.

Открыть панель зависимостей.

enter image description here

Вот мой список таблиц.

Или ... верно, вы тоже хотели COLUMNS.

Сделайте SELECT * FROM для своего просмотра в SQL Worksheet. Наведите указатель мыши на ключевое слово SELECT.

enter image description here

Это вызывает функцию расширения текста SQL в базе данных. Обратите внимание, что если ваш базовый SQL включает в себя подстановочные знаки, генерация DDL не поможет вам с именами столбцов.

Если я щелкну по тексту источника представления после наведения мыши, вы получите фактический SQL в вашем рабочем листе.

Например, это то, что я получаю для 'SELECT * FROM EMP_DETAILS_VIEW'

SELECT "A1"."EMPLOYEE_ID"        "EMPLOYEE_ID",
       "A1"."JOB_ID"             "JOB_ID",
       "A1"."MANAGER_ID"         "MANAGER_ID",
       "A1"."DEPARTMENT_ID"      "DEPARTMENT_ID",
       "A1"."LOCATION_ID"        "LOCATION_ID",
       "A1"."COUNTRY_ID"         "COUNTRY_ID",
       "A1"."FIRST_NAME"         "FIRST_NAME",
       "A1"."LAST_NAME"          "LAST_NAME",
       "A1"."SALARY"             "SALARY",
       "A1"."COMMISSION_PCT"     "COMMISSION_PCT",
       "A1"."DEPARTMENT_NAME"    "DEPARTMENT_NAME",
       "A1"."JOB_TITLE"          "JOB_TITLE",
       "A1"."CITY"               "CITY",
       "A1"."STATE_PROVINCE"     "STATE_PROVINCE",
       "A1"."COUNTRY_NAME"       "COUNTRY_NAME",
       "A1"."REGION_NAME"        "REGION_NAME"
  FROM (
       SELECT "A7"."EMPLOYEE_ID"        "EMPLOYEE_ID",
              "A7"."JOB_ID"             "JOB_ID",
              "A7"."MANAGER_ID"         "MANAGER_ID",
              "A7"."DEPARTMENT_ID"      "DEPARTMENT_ID",
              "A6"."LOCATION_ID"        "LOCATION_ID",
              "A4"."COUNTRY_ID"         "COUNTRY_ID",
              "A7"."FIRST_NAME"         "FIRST_NAME",
              "A7"."LAST_NAME"          "LAST_NAME",
              "A7"."SALARY"             "SALARY",
              "A7"."COMMISSION_PCT"     "COMMISSION_PCT",
              "A6"."DEPARTMENT_NAME"    "DEPARTMENT_NAME",
              "A5"."JOB_TITLE"          "JOB_TITLE",
              "A4"."CITY"               "CITY",
              "A4"."STATE_PROVINCE"     "STATE_PROVINCE",
              "A3"."COUNTRY_NAME"       "COUNTRY_NAME",
              "A2"."REGION_NAME"        "REGION_NAME"
         FROM "HR"."EMPLOYEES"      "A7",
              "HR"."DEPARTMENTS"    "A6",
              "HR"."JOBS"           "A5",
              "HR"."LOCATIONS"      "A4",
              "HR"."COUNTRIES"      "A3",
              "HR"."REGIONS"        "A2"
        WHERE "A7"."DEPARTMENT_ID" = "A6"."DEPARTMENT_ID"
          AND "A6"."LOCATION_ID"    = "A4"."LOCATION_ID"
          AND "A4"."COUNTRY_ID"     = "A3"."COUNTRY_ID"
          AND "A3"."REGION_ID"      = "A2"."REGION_ID"
          AND "A5"."JOB_ID"         = "A7"."JOB_ID"
) "A1";
0 голосов
/ 24 февраля 2020

select * from all_dependencies where type = 'VIEW' and name = :your_view

...