{"id":222,"date":"2014-04-26T12:45:58","date_gmt":"2014-04-26T10:45:58","guid":{"rendered":"https:\/\/www.carajandb.com\/2014\/04\/26\/extended-data-types-with-varchar2-32767-en\/"},"modified":"2022-03-21T15:19:03","modified_gmt":"2022-03-21T14:19:03","slug":"extended-data-types-with-varchar2-32767-en","status":"publish","type":"post","link":"https:\/\/carajandb.com\/en\/2014\/04\/26\/extended-data-types-with-varchar2-32767-en\/","title":{"rendered":"Extended Data Types with VARCHAR2(32767)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In the Oracle 12 New Features Guide you will find this sentence:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>&#8220;<em>The maximum size of the VARCHAR2, NVARCHAR2, and RAW data types has been increased from 4,000 to 32,767 bytes<\/em>&#8220;<\/p><p><em>Increasing the allotted size for these data types allows users to store more information in character data types before switching to large objects (LOBs). This is especially useful for brief textual data types and the capabilities to build indexes on these types of columns<\/em>.\u201d (<\/p><cite>Oracle\u00ae Database New Features Guide 12c Release 1 (12.1) E17906-16 Page 1-13<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">What great news! Especially if you want to upgrade your database to Unicode character set (AL32UTF8) and might have reached the \u201cold\u201d limit of VARCHAR2 which was 4000 byte (and not characters!).<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Sample Table<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The sample database was created with <code>AL32UTF8 <\/code>character set.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the first example I&#8217;m trying to create a table with a<code> VARCHAR2(32000 CHAR<\/code>) field:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE TABLE extendedtable (\n    id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,    \n    textfield VARCHAR(32000 CHAR),    \n    length   NUMBER,    \n    lengthb   NUMBER,    \n    lengthc   NUMBER) \nTABLESPACE users;  \n\nTextfield VARCHAR2(32000 CHAR),  ERROR at line 3: ORA-00910: specified length too long for its datatype<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So it looks like it\u2019s not that easy to use the extended data types. But I\u2019m even more interested what happens if you create a table with a \u201cnormal\u201d size and add some special characters to it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So the second version doesn\u2019t exceed the standard specification we had in earlier versions:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1090\" height=\"391\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1.jpg\" alt=\"JA-Blog-042514-1\" class=\"wp-image-601\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1.jpg 1090w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-450x161.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-768x275.jpg 768w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-1024x367.jpg 1024w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-300x108.jpg 300w\" sizes=\"auto, (max-width: 1090px) 100vw, 1090px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now I&#8217;m going to insert some strings into the textfield and calculate the length as default (length), in byte (lengthb) and in characters (lengthb). With the routine I\u2019m using the first textfield has 500 characters and that doubles until it hits the max string size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first string is without any special characters but only A-Z, a-z and 1-0.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"869\" height=\"471\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-2.jpg\" alt=\"JA-Blog-042514-2\" class=\"wp-image-602\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-2.jpg 869w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-2-450x244.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-2-768x416.jpg 768w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-2-300x163.jpg 300w\" sizes=\"auto, (max-width: 869px) 100vw, 869px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The screenshot shows the expected result: the maximum field length is 4000 (byte or character?).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">To verify<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Running the same script, which doubles the field with every new insert I run into the following error message:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">INSERT INTO standardtable (textfield, length, lengthb, lengthc) \n* ERROR at line 1: ORA-14089: result of string concatenation is too long<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And the table content shows why:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1074\" height=\"601\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3.jpg\" alt=\"JA-Blog-042514-3\" class=\"wp-image-603\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3.jpg 1074w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3-450x252.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3-768x430.jpg 768w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3-1024x573.jpg 1024w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-3-300x168.jpg 300w\" sizes=\"auto, (max-width: 1074px) 100vw, 1074px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The table now has 7 rows and the last row gives some impression on the limitations:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The binary length (<code>lengthb<\/code>) is 2008 byte while for both <code>length <\/code>and <code>lengthc <\/code>the value is 2000. So the 8<sup>th<\/sup> row would have exceeded the 4000 byte limitation again!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So what about the message <em>\u201cThe maximum size of the VARCHAR2, NVARCHAR2, and RAW data types has been increased from 4,000 to 32,767 bytes.\u201d<\/em>?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Extended Data Type Usage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is a new Oracle parameter named <code><samp>MAX_STRING_SIZE<\/samp> <\/code>which default is \u201c<code>STANDARD<\/code>\u201d. But don\u2019t try to update that string to \u201c<code>EXTENDED<\/code>\u201d immediate! The database has to be upgraded to use the extended data types and the procedure is irreversible so there\u2019s no way back.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Upgrade NON-CDB<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a Non-CDB Database the entire database has to be upgraded to support the extended data types with the following procedure:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SQL> SHUTDOWN IMMEDIATE  \nSQL> STARTUP UPGRADE  \nSQL> ALTER SYSTEM SET max_string_size=extended;  \nSQL> @?\/rdbms\/admin\/utl32k  \nSQL> SHUTDOWN IMMEDIATE  \nSQL> STARTUP<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">First the database has to be brought into the \u201cupgrade\u201d mode. Only in this mode it\u2019s possible to modify the parameter <code><samp>max_string_size<\/samp> <\/code>in memory (so without specifying <code>scope=spfile<\/code>). Now the data dictionary must be upgraded to support the 32k limits for <code>VARCHAR2<\/code>, <code>NVARCHAR2<\/code> and <code>RAW <\/code>with the SQL-Script <samp>utl32k.sql<\/samp>. That script will take less than one minute to finish and after that the database is ready to use the extended data types.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Upgrade PDB<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With the multitenant database each individual PDB can have its own setting for max_string_size. The parameter is marked as \u201c<code>ISPDB_MODIFIABLE<\/code>\u201d. To report the settings for all containers it\u2019s necessary to use <samp>v$system_parameter<\/samp> or <samp>gv$system_parameter<\/samp> because <samp>v$parameter<\/samp> or \u201c<samp>show parameter<\/samp>\u201d only lists the parameter of the CDB.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"502\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-4.jpg\" alt=\"JA-Blog-042514-4\" class=\"wp-image-604\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-4.jpg 717w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-4-450x315.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-4-300x210.jpg 300w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This picture shows that the current value of <samp>max_string_size<\/samp> is \u201c<code>STANDARD<\/code>\u201d for all containers (<code>CON_ID = 0)<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following example shows how to upgrade the PDB \u201c<code>pdbnormal<\/code>\u201d to use extended data types:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SQL> ALTER SESSION SET CONTAINER = pdbnormal;  \nSQL> ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE; \nSQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;  \nSQL> ALTER SYSTEM SET max_string_size=extended;  \nSQL> @?\/rdbms\/admin\/utl32k  \nSQL> ALTER PLUGGABLE DATABASE CLOSE;  \nSQL> ALTER PLUGGABLE DATABASE OPEN;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As a result the PDB is using its own value for<samp>max_string_size<\/samp>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"504\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-5.jpg\" alt=\"JA-Blog-042514-5\" class=\"wp-image-605\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-5.jpg 713w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-5-450x318.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-5-300x212.jpg 300w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After the upgrade I run the tests again:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First the &#8220;normal&#8221; table with the <code>VARCHAR2(4000 CHAR)<\/code> and the challenge to add 4000 characters including the &#8220;\u20ac&#8221; symbol:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"601\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-6.jpg\" alt=\"JA-Blog-042514-6\" class=\"wp-image-606\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-6.jpg 900w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-6-450x301.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-6-768x513.jpg 768w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-6-300x200.jpg 300w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It works! As you can see the byte length exceeds the 4000 bytes (actually 4016 bytes) for the 8<sup>th<\/sup> row. But as textfield was created with <code>VARCHAR2(4000 CHAR<\/code>) it\u2019s not possible to insert a larger string.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Second the table with the huge VARCHAR2 size (32000):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1070\" height=\"423\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7.jpg\" alt=\"JA-Blog-042514-7\" class=\"wp-image-607\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7.jpg 1070w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7-450x178.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7-768x304.jpg 768w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7-1024x405.jpg 1024w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-7-300x119.jpg 300w\" sizes=\"auto, (max-width: 1070px) 100vw, 1070px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It works as well and now we can store up to 32000 characters (as long as those do not exceed 32767 byte) in our \u201ctextfield\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">So why is it neccessary to upgrade the database?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The answer can be found on page 2-28 in the <em>\u201cOracle\u00ae Database SQL Language Reference 12c Release 1 (12.1) E17209-15\u201d<\/em>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>&#8220;A VARCHAR or NVARCHAR2 data type with a declared size of greater than 4000 bytes, or a RAW data type with a declared size of greater than 2000 bytes, is an extended data type.&#8221;<\/p><p>Extended data type columns are stored out-of-line, leveraging Oracle&#8217;s LOB technology. The LOB storage is always aligned with the table. In tablespaces managed with Automatic Segment Space Management (ASSM), extended data type columns are stored as SecureFiles LOBs. Otherwise, they are stored as BasicFiles LOBs. The use of LOBs as a storage mechanism is internal only. Therefore, you cannot manipulate these LOBs using the DBMS_LOB package.\u201d<\/p><cite><em>Oracle\u00ae Database SQL Language Reference 12c Release 1 (12.1) E17209-15<\/em><\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Unfortunately if you don\u2019t know this limitation you might end in some trouble because of the table layout and the calculation of the size of the table. If you analyze the table extendedtable the result is the following:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"436\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-8.jpg\" alt=\"JA-Blog-042514-8\" class=\"wp-image-608\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-8.jpg 700w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-8-450x280.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-8-300x187.jpg 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">As you see the number of blocks is 5 therefore the total size is 5 x 8192 = 40k \u2013 with an average space of 6550 per block! Comparing that with the actual values in the table:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SQL> SELECT sum(lengthb(textfield)) \n       FROM extendedtable;  \n\nSUM(LENGTHB(TEXTFIELD)) \n-----------------------\n                  71254<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So the real size of the table is about 72kB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following query gives a better impression on the size of the table:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"545\" src=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-9.jpg\" alt=\"JA-Blog-042514-9\" class=\"wp-image-609\" title=\"\" srcset=\"https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-9.jpg 711w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-9-450x345.jpg 450w, https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-9-300x230.jpg 300w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So the total size of the table is about 1,5 MB!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As long as a data field doesn\u2019t exceed the 4000 byte for a VARCHAR2 you won\u2019t see any differences to the \u201cstandard\u201d functionality and expectation. But with the lift of the limitation for the string size you might hit another limitation: The total size of an indexed column is about 75% of the database block size. If you are using VARCHAR2 size far above 4000 you might not be able to create an index on the field and you should probably look for a tablespace with 32k blocksize to minimize the risk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the past we had a problem when migrating from an one byte character set (e.g. WE8ISO8859P15 or WE8MSWIN1252) to unicode with the data type CLOB. The size of the CLOB column will double! This behaviour has not been changed with Oracle 12c:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>&#8220;Data in CLOB columns is stored in the AL16UTF16 character set when the database character set is multibyte, such as UTF8 or AL32UTF8. This means that the storage space required for an English document doubles when the data is converted.\u201d <\/p><cite>Oracle\u00ae Database Globalization Support Guide 12c Release 1 (12.1) E17750-11 Page 6 \u2013 13<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">As a consequence does this imply that all VARCHAR2 fields which exceeds the 4000 byte will now need double the space? Luckily not. The internal conversion from VARCHAR2 to CLOB does not change the character set so the values ar still stored in AL32UTF8 \u2013 otherwise our example with the extendedtable wouldn\u2019t have been successful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So if you have to choose between <samp>max_string_size=extended<\/samp> or converting to CLOBs I would suggest that the new Oracle 12c features is the better way to follow. But if you are already using CLOBs you might want to stay with them as long as you have sufficient space in your database.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Oracle 12 New Features Guide you will find this sentence: &#8220;The maximum size of the VARCHAR2, NVARCHAR2, and RAW data types has been increased from 4,000 to 32,767 bytes&#8220; Increasing the allotted size for these data types allows users to store more information in character data types before switching to large objects (LOBs). This is especially useful for brief textual data types and the capabilities to build indexes on these types of columns.\u201d ( Oracle\u00ae Database New Features Guide 12c Release 1 (12.1) E17906-16 Page 1-13 What great news! Especially if you want to upgrade your database to [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":601,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[406],"tags":[502,41,501],"class_list":["post-222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-en","tag-max_string_size-2","tag-oracle-12c","tag-unicode-2"],"acf":{"occupation":"Write the Occupation of the Person","person_can-be-speaker":true,"person_is-team":true,"person_related-user-account":null,"person_ordering-number":50,"publication_speakers":null,"publication_content-language":["de"],"publication_files":null,"publication_event":"","publication_date":null},"spectra_custom_meta":{"_thumbnail_id":["601"],"_fgj2wp_old_id":["222"],"_yoast_wpseo_metadesc":["Oracle 12c Extended Stringsize"],"_yoast_wpseo_metakeywords":["Oracle 12c, Extended Stringsize, VARCHAR2(32k), VARCHAR2(32767)"],"_fgj2wp_translation_association_key":["bede5b00fac61da4574bff6ccdbeb010"],"layout_show-author-box":["1"],"_layout_show-author-box":["field_5a64ee9cc6490"],"_edit_lock":["1647872352:3"],"_encloseme":["1"],"_wpml_word_count":["1347"],"_edit_last":["3"],"_wpml_location_migration_done":["1"],"layout_header":["light"],"_layout_header":["field_5a48111185e5f"],"layout_background":[""],"_layout_background":["field_5a481193c0995"],"layout_hide_services":["0"],"_layout_hide_services":["field_5a4811c5c0996"],"layout_show-categories-tags":["1"],"_layout_show-categories-tags":["field_5a64eee4c6491"],"blogpost_related-publications":[""],"_blogpost_related-publications":["field_5a480debdac62"],"blogpost_related-files":[""],"_blogpost_related-files":["field_5a480f377db29"],"_wpml_media_duplicate":["0"],"_wpml_media_featured":["0"],"_yoast_wpseo_content_score":["60"],"_yoast_wpseo_estimated-reading-time-minutes":["10"],"rank_math_description":["Oracle 12c Extended Stringsize"],"rank_math_news_sitemap_robots":["index"],"rank_math_robots":["a:1:{i:0;s:5:\"index\";}"],"astra_style_timestamp_css":["1776961255"],"rank_math_internal_links_processed":["1"],"wpil_sync_report3":["1"],"wpil_links_inbound_internal_count":["0"],"wpil_links_inbound_internal_count_data":["eJxLtDKwqq4FAAZPAf4="],"wpil_links_outbound_internal_count":["0"],"wpil_links_outbound_internal_count_data":["eJxLtDKwqq4FAAZPAf4="],"wpil_links_outbound_external_count":["0"],"wpil_links_outbound_external_count_data":["eJxLtDKwqq4FAAZPAf4="],"wpil_sync_report2_time":["2024-08-27T11:47:29+00:00"],"_uagb_previous_block_counts":["a:90:{s:21:\"uagb\/advanced-heading\";i:0;s:15:\"uagb\/blockquote\";i:0;s:12:\"uagb\/buttons\";i:0;s:18:\"uagb\/buttons-child\";i:0;s:19:\"uagb\/call-to-action\";i:0;s:15:\"uagb\/cf7-styler\";i:0;s:11:\"uagb\/column\";i:0;s:12:\"uagb\/columns\";i:0;s:14:\"uagb\/container\";i:0;s:21:\"uagb\/content-timeline\";i:0;s:27:\"uagb\/content-timeline-child\";i:0;s:14:\"uagb\/countdown\";i:0;s:12:\"uagb\/counter\";i:0;s:8:\"uagb\/faq\";i:0;s:14:\"uagb\/faq-child\";i:0;s:10:\"uagb\/forms\";i:0;s:17:\"uagb\/forms-accept\";i:0;s:19:\"uagb\/forms-checkbox\";i:0;s:15:\"uagb\/forms-date\";i:0;s:16:\"uagb\/forms-email\";i:0;s:17:\"uagb\/forms-hidden\";i:0;s:15:\"uagb\/forms-name\";i:0;s:16:\"uagb\/forms-phone\";i:0;s:16:\"uagb\/forms-radio\";i:0;s:17:\"uagb\/forms-select\";i:0;s:19:\"uagb\/forms-textarea\";i:0;s:17:\"uagb\/forms-toggle\";i:0;s:14:\"uagb\/forms-url\";i:0;s:14:\"uagb\/gf-styler\";i:0;s:15:\"uagb\/google-map\";i:0;s:11:\"uagb\/how-to\";i:0;s:16:\"uagb\/how-to-step\";i:0;s:9:\"uagb\/icon\";i:0;s:14:\"uagb\/icon-list\";i:0;s:20:\"uagb\/icon-list-child\";i:0;s:10:\"uagb\/image\";i:0;s:18:\"uagb\/image-gallery\";i:0;s:13:\"uagb\/info-box\";i:0;s:18:\"uagb\/inline-notice\";i:0;s:11:\"uagb\/lottie\";i:0;s:21:\"uagb\/marketing-button\";i:0;s:10:\"uagb\/modal\";i:0;s:18:\"uagb\/popup-builder\";i:0;s:16:\"uagb\/post-button\";i:0;s:18:\"uagb\/post-carousel\";i:0;s:17:\"uagb\/post-excerpt\";i:0;s:14:\"uagb\/post-grid\";i:0;s:15:\"uagb\/post-image\";i:0;s:17:\"uagb\/post-masonry\";i:0;s:14:\"uagb\/post-meta\";i:0;s:18:\"uagb\/post-taxonomy\";i:0;s:18:\"uagb\/post-timeline\";i:0;s:15:\"uagb\/post-title\";i:0;s:20:\"uagb\/restaurant-menu\";i:0;s:26:\"uagb\/restaurant-menu-child\";i:0;s:11:\"uagb\/review\";i:0;s:12:\"uagb\/section\";i:0;s:14:\"uagb\/separator\";i:0;s:11:\"uagb\/slider\";i:0;s:17:\"uagb\/slider-child\";i:0;s:17:\"uagb\/social-share\";i:0;s:23:\"uagb\/social-share-child\";i:0;s:16:\"uagb\/star-rating\";i:0;s:23:\"uagb\/sure-cart-checkout\";i:0;s:22:\"uagb\/sure-cart-product\";i:0;s:15:\"uagb\/sure-forms\";i:0;s:22:\"uagb\/table-of-contents\";i:0;s:9:\"uagb\/tabs\";i:0;s:15:\"uagb\/tabs-child\";i:0;s:18:\"uagb\/taxonomy-list\";i:0;s:9:\"uagb\/team\";i:0;s:16:\"uagb\/testimonial\";i:0;s:14:\"uagb\/wp-search\";i:0;s:19:\"uagb\/instagram-feed\";i:0;s:10:\"uagb\/login\";i:0;s:17:\"uagb\/loop-builder\";i:0;s:18:\"uagb\/loop-category\";i:0;s:20:\"uagb\/loop-pagination\";i:0;s:15:\"uagb\/loop-reset\";i:0;s:16:\"uagb\/loop-search\";i:0;s:14:\"uagb\/loop-sort\";i:0;s:17:\"uagb\/loop-wrapper\";i:0;s:13:\"uagb\/register\";i:0;s:19:\"uagb\/register-email\";i:0;s:24:\"uagb\/register-first-name\";i:0;s:23:\"uagb\/register-last-name\";i:0;s:22:\"uagb\/register-password\";i:0;s:30:\"uagb\/register-reenter-password\";i:0;s:19:\"uagb\/register-terms\";i:0;s:22:\"uagb\/register-username\";i:0;}"],"copied_media_ids":["a:9:{i:0;i:7308;i:1;i:7309;i:2;i:7310;i:3;i:7311;i:4;i:7312;i:5;i:7313;i:6;i:7314;i:7;i:7315;i:8;i:7316;}"],"referenced_media_ids":["a:1:{i:0;i:601;}"],"_uag_css_file_name":["uag-css-222.css"]},"uagb_featured_image_src":{"full":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1.jpg",1090,391,false],"thumbnail":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-200x200.jpg",200,200,true],"medium":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-450x161.jpg",450,161,true],"medium_large":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-768x275.jpg",768,275,true],"large":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1-1024x367.jpg",1024,367,true],"1536x1536":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1.jpg",1090,391,false],"2048x2048":["https:\/\/carajandb.com\/wp-content\/uploads\/2014\/04\/JA-Blog-042514-1.jpg",1090,391,false]},"uagb_author_info":{"display_name":"Johannes Ahrends","author_link":"https:\/\/carajandb.com\/en\/author\/9aa6cdb2095bd409\/"},"uagb_comment_info":3,"uagb_excerpt":"In the Oracle 12 New Features Guide you will find this sentence: &#8220;The maximum size of the VARCHAR2, NVARCHAR2, and RAW data types has been increased from 4,000 to 32,767 bytes&#8220; Increasing the allotted size for these data types allows users to store more information in character data types before switching to large objects (LOBs).&hellip;","_links":{"self":[{"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/posts\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":1,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":7984,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/posts\/222\/revisions\/7984"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/media\/601"}],"wp:attachment":[{"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/carajandb.com\/en\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}