Как получить максимальную длину входного параметра для пользовательской функции Oracle - PullRequest
1 голос
/ 04 декабря 2011

Существует ли простой способ определить максимальную ширину символа столбца, который является входным параметром для пользовательской функции Oracle.

Пример:

Предположим, у меня есть объявление пользовательской функции:

CREATE OR REPLACE Function myFn
   ( text_in IN varchar2 )
   RETURN varchar2
IS
...

END; 

Как определить в пользовательской функции максимальную ширину входного параметра 'text_in' (столбец), который передается в вызове?Мне нужно определить максимальную длину текста, которую myFn может возвращать при каждом вызове.

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Максимальная длина VARCHAR2 составляет 32767.

Вы можете получить длину для конкретной строки с помощью функции LENGTH (text_in).

0 голосов
/ 17 сентября 2012

Если у вас есть имена таблиц и столбцов, то вы можете просто запросить метаданные столбца:

select utc.DATA_LENGTH
  from user_tab_columns utc
 where utc.COLUMN_NAME = 'MY_COLUMN'
   and utc.TABLE_NAME = 'MY_TABLE'

Конечно, предполагается, что тип данных столбца - CHAR, VARCHAR или VARCHAR2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...