2015-06-24 3 views
1

Одной из тем экспертного экзамена Oracle 1Z0-047 является «Создание простых и сложных видов с видимыми/невидимыми столбцами». Я могу создавать таблицы с невидимыми столбцами, я могу создать представление, содержащее эти невидимые столбцы, но я не могу найти синтаксис, чтобы сделать эти столбцы невидимыми в результирующем представлении. документации Oracle упоминает видимый/невидимый в эталонном языке SQL Database "Create View" страницы, но не дает конкретный пример, и моя попытка после их волнистой диаграмма, не удалось:невидимые столбцы в oracle 12c view

create or replace view jl_book_author as 
    select title, b.isbn isbn invisible, lname, fname 
     from jl_books b 
      join jl_bookauthor a on b.isbn = a.isbn 
      join jl_author r on a.authorid = r.authorid 
     order by title, lname, fname; 
ERROR at line 3: 
ORA-00923: FROM keyword not found where expected 

Любая идея, как сделать сделать столбец зрения невидимо и почему Я бы хотел сделать это иначе, чем сдать экзамен?

+0

Благодарим за редактирование, Valorax, выглядит намного лучше! Можете ли вы объяснить, как вы это сделали? Я помещал отступы с 4 пробелами в оригинале, точно так же, как сказано в инструкциях, но окончательный вывод не имел отступов. Что мне не хватает? – iheitsch

ответ

1

Это работает. Единственный способ указать "INVISIBLE" - это использовать псевдонимы столбцов в представлении. Алиасы, ограничения и INVISIBLE/VISIBLE модификаторы должны быть в скобках между именем представления и ключевым словом «AS».

create or replace view jl_book_author (tl, bn INVISIBLE, al, af) as 
    select title, b.isbn, lname, fname 
     from jl_books b 
      join jl_bookauthor a on b.isbn = a.isbn 
      join jl_author r on a.authorid = r.authorid 
     order by title, lname, fname; 
1

«почему я хотел бы сделать это, кроме как сдать экзамен?»

Вы используете пункт INVISIBLE, как указано в Oracle SQL Reference CREATE TABLE, чтобы добавить столбцы в любой таблице, без кода, который включает в себя подстановочные SELECT * заявления добавить к нему бессистемно.

Поэтому очень полезно добавлять столбцы в таблицы, которые вам не нужны legacy код для случайного манипулирования.

Для более полного объяснения и примеров см. Статью ASK TOM: technology от MAY/JUNE 2014 выпуск журнала Oracle.

Смежные вопросы