Подтвердить что ты не робот

Каков эквивалент varchar (max) в Oracle?

Каков эквивалент varchar (max) в Oracle?

CLOB?

4b9b3361

Ответ 1

Varchars ограничены 4000 символами в Oracle. Помимо этого, вы должны использовать LONG или CLOB. Предпочитают CLOB. LONG - более старый эквивалент.

От эта документация Oracle:

LOB против LONG и LONG RAW

LOB отличаются от старых LONG и LONG RAW во многих отношениях.

  • Максимальный размер LOB составляет 4 гигабайта против 2 гигабайт для LONG и LONG RAW.
  • Вы можете использовать случайные, а также методы последовательного доступа к LOB; вы могут использовать только методы последовательного доступа на LONG и LONG RAW.
  • LOB (кроме NCLOB) могут быть атрибутами типа объекта, которые вы определить.
  • Таблицы могут иметь несколько столбцов больших объектов, но могут иметь только один LONG или LONG RAW.

Миграция существующих LONG и LONG Рекомендуется использовать оригинальные атрибуты больших объектов Oracle. Oracle планирует прекратить поддержку ДОЛГОСРОЧНОГО И ЛОНГОВОГО СЫРЬЯ в будущем релизы. См. Oracle8 Migration for Дополнительная информация о миграции.

Ответ 2

Как я понимаю, тип данных VARCHAR (MAX) является специфическим способом SQL Server 2005 для указания текстового поля, которое может быть небольшим (до 8000 символов в SQL Server) или big (до 2 ГБ в SQL Server). База данных обрабатывает изменения в хранилище за кулисами по мере того, как контент растет от малого диапазона до большого диапазона.

В Oracle нет эквивалента.

У вас либо есть небольшой бит текста в VARCHAR2 - до 32767 байт в pl/sql и до 4000 байт в SQL (т.е. в определении таблицы) - или у вас есть потенциально очень большой бит текста в CLOB (который является специализированным BLOB).

Ответ 3

В PL/SQL VARCHAR2 может содержать до 32767 байт. Для SQL ограничение составляет 4000 байт (это может быть меньше 4000 символов, если вы используете многобайтовый набор символов).

Ответ 4

AFAIK, эквивалента нет. Наиболее близким к ORACLE является CLOB, который имеет те же ограничения, что и TEXT в SQL Server, в "плохие старые дни".

Ответ 5

Подход, который я использовал в прошлом (MS SQL, до Varchar (max)):

Поместите два столбца в таблицу, один маленький Varchar (например, 255) и другой текст. Затем создайте приложение так, чтобы он использовал столбец Varchar для небольших данных, оставив Text null. Если данные больше, чем Varchar, оставьте это значение null и сохраните его в тексте. Таким образом, небольшие данные не занимают собственную страницу на сервере. Компромисс заключается в том, что все приложения, использующие данные, должны соглашаться с этой схемой и иметь логику для ее учета. Но он работает хорошо.

Я предполагаю, что то же самое верно в Oracle, просто замените Varchar2 на Varchar и CLOB for Text. Я не претендую на то, чтобы знать, какой правильный размер для varchar должен быть - зависит от данных, а также зависит от остальных столбцов в таблице.

Ответ 6

Oracle 11g Gateway переводит Varchar (Max) в LONG Не очень удобно и вызывают серьезные проблемы для нашей загрузки данных SQL Server в Oracle.

Для получения дополнительной информации см. следующий URL: http://docs.oracle.com/cd/B28359_01/gateways.111/b31049/apa.htm

Ответ 7

В Oracle существует эквивалент нет, равный 11g-r2. Если вам это нужно, перейдите на другой DMMS, который поддерживает его.