Доступные версии документации

Подсказка о раскрытии представления
Функция

«Раскрытие» представления (VIEW) в случае наличия у него только простых предикатов.

Например, пусть создано представление test_view:

create or replace table test1( i1 int, j1 int );
insert into test1 values (1, 1);
insert into test1 values (2, 2);
create or replace table test2( i2 int, j2 int );
insert into test2 values (1, 0);
insert into test2 values (2, 1);
insert into test2 values (3, 2);
create or replace view test_view as select i1, i2 from test1, test2 where j1=j2;

Запрос типа

select * from test_view where i2 = 2;

после подстановки текста представления будет иметь вид:

select i1, i2 from (select i1, i2 from test1, test2 where j1=j2) where i2=2;

При использовании подсказки запрос будет преобразован к следующему виду:

select i1, i2 from test1, test2 where i2=2 and j1=j2;
Спецификация
   
<подсказка раскрытия>::=
Синтаксические правила
  1. Если <имя схемы> не задано, используется текущая схема (имя пользователя, подавшего запрос).

  2. OFF – «раскрытие» представления запрещено.

  3. ON – «раскрытие» представления будет произведено, если это возможно (даже если есть сложные предикаты).

  4. Подсказка должна размещаться в конце текста запроса (перед точкой с запятой).

Примеры
  1. select * from test_view where i2 = 2 /*+EXPAND(TEST_VIEW OFF)*/;

    «Раскрытие» представления запрещено.

  2. select * from test_view where i2 in (select $$$S11
    from $$$SYSRL) /*+EXPAND(SYSTEM.TEST_VIEW ON)*/;

    «Раскрытие» представления будет произведено, если это возможно.

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter