Создание комментария
Функция
Создание комментария к объекту БД.
Спецификация
::=
{TABLE полное имя таблицы
|COLUMN полное имя таблицы.имя столбца
|PROCEDURE полное имя хранимой процедуры
|PARAMETER полное имя хранимой процедуры.имя параметра процедуры
|USER имя пользователя
|ROLE имя роли}
IS комментарий
::=
::=
::=
::=
Синтаксические правила
-
Максимальная длина
< комментария >
240 символов. При превышении предельной длины он усекается до 240 символов без какой-либо диагностики.
Общие правила
-
Для создания комментариев в БД должна существовать системная таблица
$$$OBJ_COMMENTS
(создается с помощью SQL-скриптаsystab.sql
). -
Комментарии записываются в кодировке, установленной для системных таблиц БД (SET DATABASE NAMES
< имя кодировки >
). -
При удалении объекта комментарий к нему удаляется автоматически.
-
При переименовании объекта комментарий к нему не изменяется.
-
Для добавления комментария на таблицу или ее столбец нужно иметь привилегию REFERENCES на эту таблицу и соответствующий уровень мандатного доступа к ней.
-
Для добавления комментария на процедуру или ее параметр нужно быть владельцем процедуры. Для добавления комментария на пользователя или роль нужно иметь уровень прав DBA.
Примеры
-
Создание и просмотр комментариев к таблицам comment on table auto is 'Демонстрационная таблица'; -- Комментарии к таблицам select cast ($$$usr.$$$s34 as char (18)) as "Имя схемы", cast ($$$sysrl.$$$s13 as char (18)) as "Имя таблицы", cast ($$$obj_comments.$$$text as char (30)) as "Комментарий" from LINTER_SYSTEM_USER.$$$sysrl, LINTER_SYSTEM_USER.$$$usr, LINTER_SYSTEM_USER.$$$obj_comments where $$$usr.$$$s31 = $$$sysrl.$$$s12 and $$$usr.$$$s32 = 0 and $$$obj_comments.$$$obj_type = 8 and /* код 8 – таблица */ $$$obj_comments.$$$obj_id = $$$sysrl.$$$s11; Результат: Имя схемы Имя таблицы Комментарий --------- ----------- ----------- |SYSTEM |AUTO |Демонстрационная таблица |
-
Создание и просмотр комментариев к столбцам таблицы comment on column auto.model is 'Марка автомобиля'; comment on column auto.color is 'Цвет автомобиля'; comment on column auto.bodytype is 'Тип кузова'; -- Комментарии к столбцам таблицы AUTO.SYSTEM select cast ($$$attri.$$$s23 as char (18)) as "Имя столбца", cast ($$$obj_comments.$$$text as char (30)) as "Комментарий" from LINTER_SYSTEM_USER.$$$sysrl, LINTER_SYSTEM_USER.$$$usr, LINTER_SYSTEM_USER.$$$attri, LINTER_SYSTEM_USER.$$$obj_comments where $$$attri.$$$s21 = $$$sysrl.$$$s11 and $$$usr.$$$s31 = $$$sysrl.$$$s12 and $$$sysrl.$$$s13 = 'AUTO' and /* или другое имя таблицы */ $$$usr.$$$s34 = 'SYSTEM' and /* или другое имя схемы */ $$$usr.$$$s32 = 0 and $$$obj_comments.$$$obj_type = 22 and /* код 22 – столбец */ $$$obj_comments.$$$obj_id = $$$sysrl.$$$s11 and $$$obj_comments.$$$nmr = $$$attri.$$$s22; Результат: Имя столбца Комментарий ----------- ----------- |MODEL |Марка автомобиля | |COLOR |Цвет автомобиля | |BODYTYPE |Тип кузова |
-
-- Создание и просмотр комментариев к хранимой процедуре и ее параметрам create user u1 identified by '12345678'; grant dba to u1; username U1/12345678 create or replace procedure proc_c (in i int; in j int) result int code return i+j; end; comment on procedure proc_c is 'Сумма двух значений'; comment on parameter proc_c.i is 'Первое слагаемое'; comment on parameter proc_c.j is 'Второе слагаемое'; comment on parameter u1.proc_c.j is 'Второе слагаемое'; -- Комментарии к процедурам select cast ($$$usr.$$$s34 as char (18)) as "Имя схемы", cast ($$$proc.$$$name as char (18)) as "Имя процедуры", cast ($$$obj_comments.$$$text as char (30)) as "Комментарий" from LINTER_SYSTEM_USER.$$$proc, LINTER_SYSTEM_USER.$$$usr, LINTER_SYSTEM_USER.$$$obj_comments where $$$usr.$$$s31 = $$$proc.$$$owner and $$$usr.$$$s32 = 0 and $$$obj_comments.$$$obj_type = 12 and /* код 12 – процедура */ $$$obj_comments.$$$obj_id = $$$proc.$$$id; Результат: Имя схемы Имя процедуры Комментарий --------- ------------- ----------- |U1 |PROC_C |Сумма двух значений
-
-- Комментарии к параметрам процедуры U1.PROC_C select cast ($$$prcd.name as char (18)) as "Имя параметра", cast ($$$obj_comments.$$$text as char (30)) as "Комментарий" from LINTER_SYSTEM_USER.$$$proc, LINTER_SYSTEM_USER.$$$usr, LINTER_SYSTEM_USER.$$$prcd, LINTER_SYSTEM_USER.$$$obj_comments where $$$usr.$$$s31 = $$$proc.$$$owner and $$$usr.$$$s32 = 0 and $$$prcd.procid = $$$proc.$$$id and $$$proc.$$$name = 'PROC_C' and /* или другое имя процедуры */ $$$usr.$$$s34 = 'U1' and /* или другое имя схемы */ $$$obj_comments.$$$obj_type = 23 and /* код 23 – параметр */ $$$obj_comments.$$$obj_id = $$$proc.$$$id and $$$obj_comments.$$$nmr = $$$prcd.argid; Результат: Имя параметра Комментарий ------------- ----------- |I |Первое слагаемое | |J |Второе слагаемое |