Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 А можно ли сохранить комментарий в начале тела view?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3588
Создаю набор представлений для внешнего RADIUS-сервера.
И в целях самодокументации хочу оставить в теле запроса комментарии.
create view V_SAMPLE as
--sample view 
select 1 N1, 2 N2, 3 N3
from DUAL

Но в этом случае комментарий вырезается и представление сохраняется без него.
Если сделать так:
create view V_SAMPLE as
select 1 N1, 2 N2, 3 N3
--sample view 
from DUAL

то комментарий сохраняется, но выглядит как-то не очень.

Можно ли как-то сохранить комментарий в начале тела?
30 июн 20, 12:24    [22159581]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8657
Alibek B.

то комментарий сохраняется, но выглядит как-то не очень.

Какая-то надуманная проблема
30 июн 20, 12:30    [22159588]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3588
Когда комментарий в самом начале, то он ничему не мешает и понятно, что относится ко всему запросу.
Если он в середине запроса, например перед FROM, то стороннему человеку будет не совсем понятно, к чему он относится.
30 июн 20, 12:33    [22159593]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8657
Напиши в самом начале, после SELECT
что "стороннему человеку не совсем понятно" ?
30 июн 20, 12:47    [22159607]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18065
Alibek B.
комментарий сохраняется, но выглядит как-то не очень.

Можно ли как-то сохранить комментарий в начале тела?

Откройте для себя кляузу "COMMENT ON ..."
30 июн 20, 13:00    [22159619]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8062
andrey_anonymous
Alibek B.
комментарий сохраняется, но выглядит как-то не очень.

Можно ли как-то сохранить комментарий в начале тела?

Откройте для себя кляузу "COMMENT ON ..."
Кляузный пример :-)

SQL> CREATE VIEW my_dual
  2  AS
  3  SELECT dummy AS whammy FROM dual;
View MY_DUAL created.

SQL> COMMENT ON TABLE my_dual IS 'Это моя замечательнгая вьюшка для дюалирования';
Comment created.

SQL> COLUMN table_name FORMAT A10;
SQL> COLUMN comments FORMAT A50;
SQL> 
SQL> SELECT table_name, table_type, comments 
  2  FROM user_tab_comments
  3  WHERE table_name = 'MY_DUAL';

TABLE_NAME TABLE_TYPE    COMMENTS                                          
---------- ------------- --------------------------------------------------
MY_DUAL    VIEW          Это моя замечательнгая вьюшка для дюалирования  
30 июн 20, 13:26    [22159640]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18065
SQL*Plus
Кляузный пример :-)

Вообще приличные инструменты показывают штатные комментарии по таблицам/колонкам самостоятельно.
При переносе DDL про комменты тоже не забывают.
30 июн 20, 13:53    [22159661]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15473
Alibek B.,

всё правильно и логично
кто сказал, что в в вашем первом примере комментарий предназначен для
sql-текста view?
Вот лично я воспринимаю его, как комментарий для текста ddl-скрипта.
Ну и (видимо :) так же как и компилятор ..
30 июн 20, 13:57    [22159663]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2468
Alibek B.,

сразу после селекта коментируйте

create or replace view V_SAMPLE as
select
/* -------------------
sample view
не удалять!!!
нужна раз в году 31/12
--------------------*/
 1 N1,
 2 N2,
 3 N3
from DUAL


чутку некрасиво, но "маємо шо маємо"
видел коменты даж рамочкой обрамлены

не знаю (не задумывался), влияют ли простыни коменты на кеш

.....
stax
30 июн 20, 14:09    [22159677]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3588
Stax
сразу после селекта коментируйте

Да, так более-менее подходит.

on comment я конечно использовал, но комментарии в теле несут несколько другую роль.
Это несколько запросов, объединенных через union, каждый блок которого я бы хотел сделать легко отключаемым.
В результате сделал так:
select 0 as id, '' as username, '' as attribute, '' as value, '' as op from DUAL where 0=1
--authorize_check_query from authcheck_table

--/*----------------------------------------------------------------------------
union all
-- Доступ к хотспоту подключен услугой
select 1E11 + S.SERVICE_ID as id
...
from ...
------------------------------------------------------------------------------*/

--/*----------------------------------------------------------------------------
union all
-- Доступ к хотспоту включен в условия тарифа
select 2E11 + S.SERVICE_ID as id
...
from ...
------------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------
union all
-- Гостевые учетные записи с авторизацией по номеру телефона
select 9E11 + to_number(PHONE) as id
...
from ...
------------------------------------------------------------------------------*/


Фиктивный начальный select нужен для того, чтобы проставить имена столбцов и чтобы под ним на второй строке можно было указать комментарий.
30 июн 20, 14:50    [22159705]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
кит северных морей
Member

Откуда: krsk / nyc / krsk
Сообщений: 766
Alibek B.,

create view v_whatever as 
with 
hotspot_by_service as (
    -- Доступ к хотспоту подключен услугой
    select 1e11 + s.service_id, s.username, s.attribute, s.value, s.op from s where ... 
), 
hotspot_by_tariff as (
    -- Доступ к хотспоту включен в условия тарифа
    select 2e11 + s.service_id, s.username, s.attribute, s.value, s.op from s where ... 
), 
guest_accounts as (
    -- Гостевые учетные записи с авторизацией по номеру телефона
    select 9e11 + to_number(phone), s.username, s.attribute, s.value, s.op from s where ... 
)
          select * from hotspot_by_service 
union all select * from hotspot_by_tariff 
union all select * from guest_accounts
30 июн 20, 15:48    [22159759]     Ответить | Цитировать Сообщить модератору
 Re: А можно ли сохранить комментарий в начале тела view?  [new]
Alibek B.
Member

Откуда:
Сообщений: 3588
Оригинально, сам не думал использовать with таким образом.
Спасибо за идею, попробую.
30 июн 20, 15:57    [22159775]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить