{"id":3813,"date":"2014-05-23T12:15:31","date_gmt":"2014-05-23T10:15:31","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/"},"modified":"2014-05-23T12:15:31","modified_gmt":"2014-05-23T10:15:31","slug":"12c-extended-datatypes-better-than-clob","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/","title":{"rendered":"Oracle 12c extended datatypes better than CLOB?"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\n12c has introduced character strings that can can go above 4000 bytes. In the previous versions, in PL\/SQL only we were allowed to have VARCHAR2 up to 32k. In SQL the VARCHAR2 datatype was limited to 4000 and CHAR was limited to 2000. That became a bit small especially when lot of applications needed to store unicode characters.<\/p>\n<p>From 12c we can have SQL datatypes having up to 32k bytes for VARCHAR2, CHAR and RAW. It&#8217;s not allowed by default. We need to set max_string_size=extended and recompile views with utl32k. Nice improvement. But is it a good idea to use that new feature when we already have CLOB for large character strings ? The New Features documentation is clear about that: extended datatypes have been introduced to be compatible with other databases &#8211; not to replace existing features.<\/p>\n<p>I will not go into the details how they are stored. Information about that is available elsewhere. See for example <a href=\"http:\/\/twitter.com\/ludodba\">@ludodba<\/a> recent blog post <a href=\"http:\/\/www.ludovicocaldara.net\/dba\/extended-data-types-storage\/trackback\">Where are Extended Data Types stored?<\/a>. Extended datatypes are stored as chained rows if you just extend an existing table, or as a LOB if you defined them on a new table. Chained rows is clearly not a good option, so, given that you (re)create the tables, their storage is similar to CLOB.<\/p>\n<p>But there is something that I don&#8217;t like with LOBS: they are fetched row by row. When you select a row you get only the handle. And you get the CLOB later when you access to it through the handle. Did you ever try to datapump a table with LOBs through network_link? Huge amount of roundtrips and very bad performance. It&#8217;s one rare case where doing expdp\/impdp with a dumpfile is better. For very large objects, you will do several roundtrips anyway, so this is not an issue. But with character strings that are just a few kilobytes having them as LOB introduces an ineffective overhead.<\/p>\n<p>Let&#8217;s compare the fetch behaviour with those new extended datatypes. For my demo, I&#8217;ll use a table with a clob column &#8220;C&#8221; and an extended varchar2 column &#8220;E&#8221;, and insert same data into both columns.<\/p>\n<pre><code>\nSQL&gt;\u00a0create\u00a0table\u00a0TEST\u00a0(\u00a0C\u00a0clob\u00a0,\u00a0E\u00a0varchar2(9000)\u00a0);\nTable\u00a0created.\nSQL&gt;\u00a0insert\u00a0into\u00a0TEST\u00a0select\u00a0lpad(rownum,9000,'x'),lpad(rownum,9000,'x')\u00a0from\u00a0dual\u00a0connect\u00a0by\u00a0level &lt;=10;\n10\u00a0rows\u00a0created.<\/code><\/pre>\n<p>Here is the autotrace when reading the CLOB from 10 rows:<\/p>\n<pre><code>SQL&gt;\u00a0set\u00a0autotrace\u00a0trace\u00a0stat\n SQL&gt;\u00a0select\u00a0C\u00a0from\u00a0TEST;\n &nbsp;\n \u00a010\u00a0rows\u00a0selected.\n  &nbsp;\n \u00a0Statistics\n \u00a0----------------------------------------------------------\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02\u00a0\u00a0recursive\u00a0calls\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0db\u00a0block\u00a0gets\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a027\u00a0\u00a0consistent\u00a0gets\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a020\u00a0\u00a0physical\u00a0reads\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0redo\u00a0size\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a093936\u00a0\u00a0bytes\u00a0sent\u00a0via\u00a0SQL*Net\u00a0to\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02722\u00a0\u00a0bytes\u00a0received\u00a0via\u00a0SQL*Net\u00a0from\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a022\u00a0\u00a0SQL*Net\u00a0roundtrips\u00a0to\/from\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0sorts\u00a0(memory)\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0sorts\u00a0(disk)\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a010\u00a0\u00a0rows\u00a0processed<\/code><\/pre>\n<p>For only 10 rows I&#8217;ve made 22 roundtrips. This is the problem with LOBs. Too many roundtrips. Well there is another problem that I&#8217;ll not show here, which is the fact that you can fetch the lob a long time after, even when the cursor is closed. It does consistent read so you have to set your undo_retention accordingly.<\/p>\n<p>Now here is the same data from the extended varchar2 column:<\/p>\n<pre><code>SQL&gt;\u00a0select\u00a0E\u00a0from\u00a0TEST;\n  &nbsp;\n \u00a010\u00a0rows\u00a0selected.\n &nbsp;\n \u00a0Statistics\n \u00a0----------------------------------------------------------\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01\u00a0\u00a0recursive\u00a0calls\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0db\u00a0block\u00a0gets\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a056\u00a0\u00a0consistent\u00a0gets\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0physical\u00a0reads\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0redo\u00a0size\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a090501\u00a0\u00a0bytes\u00a0sent\u00a0via\u00a0SQL*Net\u00a0to\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0492\u00a0\u00a0bytes\u00a0received\u00a0via\u00a0SQL*Net\u00a0from\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02\u00a0\u00a0SQL*Net\u00a0roundtrips\u00a0to\/from\u00a0client\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0sorts\u00a0(memory)\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0sorts\u00a0(disk)\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a010\u00a0\u00a0rows\u00a0processed<\/code><\/pre>\n<p>Here I got the same volume (10 times 9000 characters) but this time I did only 2 roundtrips.<br \/>\nLet&#8217;s go further and trace with sql_trace. LOB calls are instrumented since 11g so we can see them from the trace file:<\/p>\n<pre><code>PARSING\u00a0IN\u00a0CURSOR\u00a0#139894737850360\u00a0len=18\u00a0dep=0\u00a0uid=103\u00a0oct=3\u00a0lid=103\u00a0tim=8952647276\u00a0hv=844696927\u00a0ad='77e1a518'\u00a0sqlid='132sh6wt5k3az'\n select\u00a0C\u00a0from\u00a0TEST\n END\u00a0OF\u00a0STMT\n PARSE\u00a0#139894737850360:c=0,e=82,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1357081020,tim=895260\n EXEC\u00a0#139894737850360:c=0,e=69,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1357081020,tim=897416\n FETCH\u00a0#139894737850360:c=0,e=97,p=0,cr=4,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=848200\n LOBREAD:\u00a0c=999,e=10893,p=2,cr=1,cu=0,tim=8952659696\n FETCH\u00a0#139894737850360:c=0,e=43,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=860372\n LOBREAD:\u00a0c=1000,e=1614,p=2,cr=1,cu=0,tim=8952662447\n FETCH\u00a0#139894737850360:c=0,e=47,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=863495\n LOBREAD:\u00a0c=2000,e=657,p=2,cr=1,cu=0,tim=8952664615\n FETCH\u00a0#139894737850360:c=0,e=40,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=865575\n LOBREAD:\u00a0c=0,e=706,p=2,cr=1,cu=0,tim=8952666808\n FETCH\u00a0#139894737850360:c=0,e=37,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=867552\n LOBREAD:\u00a0c=1000,e=949,p=2,cr=1,cu=0,tim=8952669193\n FETCH\u00a0#139894737850360:c=0,e=92,p=0,cr=4,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=869825\n LOBREAD:\u00a0c=0,e=844,p=2,cr=1,cu=0,tim=8952671276\n FETCH\u00a0#139894737850360:c=0,e=68,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=872168\n LOBREAD:\u00a0c=1000,e=756,p=2,cr=1,cu=0,tim=8952673521\n FETCH\u00a0#139894737850360:c=0,e=44,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=874712\n LOBREAD:\u00a0c=999,e=914,p=2,cr=1,cu=0,tim=8952676180\n FETCH\u00a0#139894737850360:c=0,e=64,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=877352\n LOBREAD:\u00a0c=0,e=931,p=2,cr=1,cu=0,tim=8952678875\n FETCH\u00a0#139894737850360:c=0,e=52,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=879774\n LOBREAD:\u00a0c=1000,e=795,p=2,cr=1,cu=0,tim=8952681136\n FETCH\u00a0#139894737850360:c=1000,e=7,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1357081020,tim=891850\n STAT\u00a0#139894737850360\u00a0id=1\u00a0cnt=10\u00a0pid=0\u00a0pos=1\u00a0obj=100085\u00a0op='TABLE\u00a0ACCESS\u00a0FULL\u00a0TEST\u00a0(cr=16\u00a0pr=0\u00a0pw=0\u00a0time=60\u00a0us\u00a0cost=5\u00a0size=20980\u00a0card=10)'\n CLOSE\u00a0#139894737850360:c=0,e=31,dep=0,type=0,tim=8952684289<\/code><\/pre>\n<p>And the sql_trace with the same data from the extended datatype.<\/p>\n<pre><code>PARSING\u00a0IN\u00a0CURSOR\u00a0#139895028091224\u00a0len=18\u00a0dep=0\u00a0uid=103\u00a0oct=3\u00a0lid=103\u00a0tim=8954178349\u00a0hv=1829009117\u00a0ad='7b48ba08'\u00a0sqlid='4kq232tqh8xqx'\n select\u00a0E\u00a0from\u00a0TEST\n END\u00a0OF\u00a0STMT\n PARSE\u00a0#139895028091224:c=0,e=64,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1357081020,tim=895345\n EXEC\u00a0#139895028091224:c=0,e=36,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1357081020,tim=895435\n FETCH\u00a0#139895028091224:c=1000,e=896,p=0,cr=8,cu=0,mis=0,r=1,dep=0,og=1,plh=1357081020,tim=899458\n FETCH\u00a0#139895028091224:c=4000,e=3660,p=0,cr=48,cu=0,mis=0,r=9,dep=0,og=1,plh=1357081020,tim=89535\n STAT\u00a0#139895028091224\u00a0id=1\u00a0cnt=10\u00a0pid=0\u00a0pos=1\u00a0obj=100085\u00a0op='TABLE\u00a0ACCESS\u00a0FULL\u00a0TEST\u00a0(cr=56\u00a0pr=0\u00a0pw=0\u00a0time=670\u00a0us\u00a0cost=5\u00a0size=20010\u00a0card=10)'\n CLOSE\u00a0#139895028091224:c=0,e=13,dep=0,type=0,tim=8954214996<\/code><\/pre>\n<p>So there is is one big advantage over CLOB: the column values are returned without additional roundtrips.<\/p>\n<p>That would mean that if you have character strings that may be between 4k and 32k then extended datatypes can be a good option. It&#8217;s a new feature however, and designed for another goal (easy migration from other databases). So it&#8217;s something to test carefully and the tests must integrate all you infrastructure components (backups, exports, replication, etc).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . 12c has introduced character strings that can can go above 4000 bytes. In the previous versions, in PL\/SQL only we were allowed to have VARCHAR2 up to 32k. In SQL the VARCHAR2 datatype was limited to 4000 and CHAR was limited to 2000. That became a bit small especially when lot [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198,59],"tags":[362,463,206,209,98],"type_dbi":[],"class_list":["post-3813","post","type-post","status-publish","format-standard","hentry","category-database-management","category-oracle","tag-character-set","tag-clob","tag-lob","tag-oracle-12c","tag-sql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle 12c extended datatypes better than CLOB? - dbi Blog<\/title>\n<meta name=\"description\" content=\"Oracle 12c extended datatypes vs. CLOB\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle 12c extended datatypes better than CLOB?\" \/>\n<meta property=\"og:description\" content=\"Oracle 12c extended datatypes vs. CLOB\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-23T10:15:31+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Oracle 12c extended datatypes better than CLOB?\",\"datePublished\":\"2014-05-23T10:15:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\"},\"wordCount\":584,\"commentCount\":0,\"keywords\":[\"Character set\",\"CLOB\",\"LOB\",\"Oracle 12c\",\"SQL\"],\"articleSection\":[\"Database management\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\",\"name\":\"Oracle 12c extended datatypes better than CLOB? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2014-05-23T10:15:31+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"Oracle 12c extended datatypes vs. CLOB\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle 12c extended datatypes better than CLOB?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle 12c extended datatypes better than CLOB? - dbi Blog","description":"Oracle 12c extended datatypes vs. CLOB","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/","og_locale":"en_US","og_type":"article","og_title":"Oracle 12c extended datatypes better than CLOB?","og_description":"Oracle 12c extended datatypes vs. CLOB","og_url":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/","og_site_name":"dbi Blog","article_published_time":"2014-05-23T10:15:31+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Oracle 12c extended datatypes better than CLOB?","datePublished":"2014-05-23T10:15:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/"},"wordCount":584,"commentCount":0,"keywords":["Character set","CLOB","LOB","Oracle 12c","SQL"],"articleSection":["Database management","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/","url":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/","name":"Oracle 12c extended datatypes better than CLOB? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2014-05-23T10:15:31+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"Oracle 12c extended datatypes vs. CLOB","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/12c-extended-datatypes-better-than-clob\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle 12c extended datatypes better than CLOB?"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=3813"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3813\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=3813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=3813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=3813"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=3813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}