Oracle
 sql >> база данни >  >> RDS >> Oracle

12c VARCHAR2(32767)

Винаги съм се чудил защо типът данни VARCHAR2 е ограничен до толкова малко символи. За повечето атрибути не са ви необходими повече от 2000 байта. Спомням си, когато Oracle вдигна границата от 2000 байта на 4000. Но SQL Server 2008R2 ви позволява да използвате 8000. Говорим за символни данни и ограничението от 2000 или 4000 байта ми се стори някак произволно. Сега в Oracle 12c можете да използвате VARCHAR2(32767) за максимум 32KB. Но преди да можете да използвате тази нова функция, трябва да свършите малко работа. Извън кутията ще получите грешка.

SQL> създайте таблица test_tab (val varchar2(32000)); създайте таблица test_tab (val varchar2(32000))                                    *ГРЕШКА в ред 1:ORA-00910 дължината е твърде дълга за нейните данни:

Oracle 12c включва нов параметър, MAX_STRING_SIZE, който контролира колко голям може да бъде вашият тип данни VARCHAR2. Този параметър може да бъде настроен на СТАНДАРТНО или РАЗШИРЕНО. По подразбиране е СТАНДАРТНО, което ограничава VARCHAR2 до 4000 байта. Промяната на този параметър на стандартен на EXTENDED е еднопосочно пътуване. Не можете да се върнете обратно. За да направите промяната, трябва да СТАРТирате НАДГРАДЯВАНЕ на екземпляра, да промените параметъра и да стартирате скрипт.

 SQL> SUTLDOWN SECLOPIADATABASE Затворен. Database Discounted.Oracle ENSTAND SUTLONG.SQL> Стартиране на ъпгрейд Надграден екземпляр. Тотална система Global Area 1043886080 Bytesfixed Размер 2296280 BytesVarible 654313000 BytesDataBas системен набор max_string_size=Разширен обхват=и двете;Системата е променена.SQL> @?/rdbms/admin/utl32k.sql

Това може да отнеме известно време. След като приключите, отскочете екземпляра, за да се отвори както обикновено.

Вече мога да създам таблица с този по-голям тип данни.

SQL> създайте таблица test_tab (val varchar2(32000));Таблицата е създадена.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. върнете набор от резултати от функцията

  2. Изпращане на имейл с прикачени файлове в Oracle D2k, Oracle Forms 10g, Oracle Forms 6i

  3. Всички полезни 11g динамични изгледи за производителност

  4. Java:Четене на Blob от Oracle

  5. В Oracle има ли функция, която изчислява разликата между две дати?