2016-01-12 3 views
2

Я знаю, что могу прокомментировать столбец с COMMENT ON COLUMN table.column IS 'commentString', но есть ли способ добавить один и тот же комментарий к нескольким столбцам в одном выражении?Комментарий с несколькими колонками

Например, мне нужно добавить комментарий «Данные пользователя» к столбцам NAME и BIRTHDATE, и я хотел бы понять, можно ли это сделать в одном выражении, а не повторять COMMENT ON COLUMN x.y IS 'User Data' два раза.

+3

Я не думаю, что это возможно. И это вроде бы побеждает цель, поскольку комментарий должен объяснить что-то о колонке. Имя и день рождения, вероятно, находятся в пользовательской таблице, поэтому очевидно, что они являются пользовательскими данными. Если это не таблица пользователей, возможно, вам нужно пересмотреть свою модель данных или, по крайней мере, рассмотреть возможность переименования их в USERNAME и USERBIRTHDAY. – GolezTrol

+0

Я согласен с вашей логикой, но, к сожалению, это не зависит от меня! – AlexBay

+0

В этом случае, боюсь, вам нужно скопировать заявление. «Комментарий к столбцу» применяет комментарий только к одному столбцу. – GolezTrol

ответ

1

Это невозможно прямым путем, но вы можете сделать это с динамическим SQL в PL \ SQL блок

BEGIN 
    FOR i IN (SELECT t.owner || '.' || t.table_name || '.' || t.column_name col 
       FROM all_tab_cols t 
       WHERE t.owner = 'OWNER' AND t.table_name = 'TABLE_NAME' AND 
        t.column_name IN ('COL1', 'COL2')) 
    LOOP 
     EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || i.col || 
          ' IS ''PLACE COMMENT HERE'''; 
    END LOOP; 
END;