«Раскрытие» представления (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;
::=
Если <имя схемы>
не задано, используется текущая схема (имя пользователя, подавшего запрос).
OFF – «раскрытие» представления запрещено.
ON – «раскрытие» представления будет произведено, если это возможно (даже если есть сложные предикаты).
Подсказка должна размещаться в конце текста запроса (перед точкой с запятой).
select * from test_view where i2 = 2 /*+EXPAND(TEST_VIEW OFF)*/;
«Раскрытие» представления запрещено.
select * from test_view where i2 in (select $$$S11 from $$$SYSRL) /*+EXPAND(SYSTEM.TEST_VIEW ON)*/;
«Раскрытие» представления будет произведено, если это возможно.