Ваш пример может быть не самым лучшим, поскольку есть другие способы сделать это.Например, определите переменную PL / SQL как table.column%type
, а затем перехватывайте любые исключения, которые возникают (например, из-за проблем длины) при попытке вставить в нее пользовательские данные.
В общем, я нахожу этоочень необычно для производственного кода запрашивать из словаря данных.Но я делал это время от времени и не помню, чтобы у него возникали какие-то особые проблемы, кроме как помнить, что владелец объекта PL / SQL должен иметь прямые привилегии для словаря и не может получать к ним доступ через роль, поскольку ролиотключены в именованных блоках PL / SQL, имеющих права определителя.