Создать Oracle Просмотр, который выполняется только тогда, когда есть условие где - PullRequest
0 голосов
/ 05 марта 2020

У меня есть представление имени клиента, и я хочу ограничить следующую команду SQL

select * from customer;

Я хочу создать представление, где пользователь должен иметь предложение where, и только оно является исполняемым

select * from customer where address='ABC';

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Используйте контексты.

create context where_condition using your_context_pkg;

Затем используйте контекст в представлении:

create view customer_v as
select * from customer
where  address = sys_context('where_condition', 'addreess')

Вам необходимо предоставить пакет PL / SQL с именем your_context_pkg, где значение контекста устанавливается с помощью dbms_session.set_context(...).

0 голосов
/ 05 марта 2020

Как вы это сформулируете, вы воссоздаете представление как

create or replace view customer as
  select whatever
  from bunch_of_tables
  where address is not null      --> add this

Если вам нужна эта функция для безопасности, ознакомьтесь с ролевой безопасностью (RBS).

...