{"id":3202,"date":"2013-08-14T01:50:00","date_gmt":"2013-08-13T23:50:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/"},"modified":"2022-12-14T10:20:39","modified_gmt":"2022-12-14T09:20:39","slug":"oracle-12c-securefiles-enhancements","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/","title":{"rendered":"Oracle Database 12c: SecureFiles enhancements"},"content":{"rendered":"<p><img decoding=\"async\" class=\"blog-image aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\" alt=\"\"><\/p>\n<p>Oracle Database 12c features with some enhancements for LOB objects and particularly for the SecureFiles. This is not a revolution, but we can see that the range of possibilities with LOB objects increases with the different releases of Oracle&#8230;<\/p>\n<h3>SecureFiles is the default for LOB storage<\/h3>\n<p>With Oracle 11g, when creating a table containing LOB data, LOB are stored as BASIC FILE per default and the default value for the init parameter DB_SECUREFILE is set to PERMITTED (the creation of SecureFiles is allowed but not automatic). To create SecureFiles on 11g, two solutions are available:<\/p>\n<ul>\n<li>It is possible to set the DB_SECUREFILE parameter to ALWAYS, in order to force the system to create LOB files as SecureFiles. In that case, all BasicFile lob storage options are ignored. Because SecureFiles are only supported with ASSM tablespaces, an error is raised if the user try to create a LOB on a non ASSM tablespace. BasicFile becomes purely unavailable.<\/li>\n<\/ul>\n<ul>\n<li>Use the STORE AS SECUREFILE clause when creating the table, as follows:<\/li>\n<\/ul>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; CREATE TABLE t1 (a CLOB)\nLOB(a) STORE AS SECUREFILE;<\/pre>\n<p>&nbsp;<\/p>\n<p>With Oracle 12c, LOBs are now stored as SecureFiles per default, and the init parameter DB_SECUREFILE has changed:<\/p>\n<ul>\n<li>The new PREFERRED value is now the default, if the COMPATIBLE init parameter is set to 12.0.0.0 or higher. PREFERRED makes LOBs to be stored as SecureFiles per default, unless the BASICFILE clause is explicitely used when creating the table, or the tablespace is not ASSM.<\/li>\n<\/ul>\n<ul>\n<li>The ALWAYS value still forces the storage as SecureFiles, however, LOBs are stored as BasicFile if the tablespace is not ASSM, instead of raising an error. BasicFile is not banned.<\/li>\n<\/ul>\n<p>I checked this new feature on an Oracle 12c database:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; show parameter db_securefile;\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE\n------------------------------------ ----------- ------------------------------\ndb_securefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PREFERRED<\/pre>\n<p>The parameter has the PREFERRED value. Now, what happens if I create a table without specifying the SECUREFILE clause?<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create table t1 (a CLOB);\nSQL&gt; select table_name, securefile from user_lobs;&nbsp;\nTABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SECUREFILE\n------------------------------ ---------------\nT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES<\/pre>\n<p>The LOB has been created as SecureFile.<\/p>\n<p>Note that even if Securefiles is now the default, it does not prevent the customer from buying the license for both Oracle Advanced Compression and Oracle Advance Security options in order to benefit of deduplication, encryption, and compression for SecureFiles.<\/p>\n<h3>Oracle Datapump supports SecureFiles as Default<\/h3>\n<p>Oracle 12c stores LOBs as SecureFiles per default. In the case where a table or a database using BasicFiles was exported using EXPDP, if you want to import the dump file into a 12c database, Data Pump will try to recreate LOBs exactly as they were stored in the old database. It was not possible to recreate LOBs directly as SecureFiles.<\/p>\n<p>I think you have guessed, Oracle 12c offers a new clause for the impdp tool, in order to convert LOBs stored as BasicFiles to SecureFiles on the fly: TRANSFORM=LOB_STORAGE:SECUREFILE.<br \/>\nTo demonstrate this new feature, I firstly created a table containing LOBs stored as Basicfile on an 11g Database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; connect msc\/***\nSQL&gt; create table t1 (a BLOB);<\/pre>\n<p>Then I created a directory to put the dump file.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create directory DPUMP_DIR as '\/home\/oracle';<\/pre>\n<p>The path \/home\/oracle also contains several files. I inserted myfile.txt in the table t1 with the following PL\/SQL code:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DECLARE\n&nbsp; src_lob&nbsp; BFILE := BFILENAME('DPUMP_DIR', 'myfile.txt');\n&nbsp; dest_lob BLOB;\nBEGIN\n&nbsp; INSERT INTO t1 VALUES(EMPTY_BLOB())\n&nbsp;&nbsp;&nbsp;&nbsp; RETURNING a INTO dest_lob;&nbsp; DBMS_LOB.OPEN(src_lob, DBMS_LOB.LOB_READONLY);\n&nbsp; DBMS_LOB.LoadFromFile( DEST_LOB =&gt; dest_lob,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SRC_LOB&nbsp; =&gt; src_lob,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AMOUNT&nbsp;&nbsp; =&gt; DBMS_LOB.GETLENGTH(src_lob) );\n&nbsp; DBMS_LOB.CLOSE(src_lob);&nbsp; COMMIT;\nEND;\n\/<\/pre>\n<p>We can see that the LOB has not been stored as SecureFile:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select table_name, securefile from user_lobs;\nTABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SEC\n------------------------------ ---\nT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO<\/pre>\n<p>Now, I perform the export of the table with the msc user:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">$ expdp msc\/*** dumpfile=EXPORT_T1.dmp logfile=EXPORT_T1.log directory=DPUMP_DIR tables=T1;<\/pre>\n<p>I will try to import this table to a 12c Database by two ways.<\/p>\n<h4>1) Without the TRANSFORM clause<\/h4>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">$ impdp msc\/*** dumpfile=EXPORT_T1.dmp logfile=IMPORT_T1.log directory=DPUMP_DIR table_exists_action=REPLACE<\/pre>\n<p>Let&#8217;s see the SECUREFILE column in the USER_LOBS view:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select table_name, securefile from user_lobs;\nTABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SECUREFILE\n------------------------------ ---------------\nT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NO<\/pre>\n<p>As expected, Data Pump has recreated the table as it was stored in the 11g Database.<\/p>\n<h4>2) With the TRANSFORM clause<\/h4>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">$ impdp msc\/*** dumpfile=EXPORT_T1.dmp logfile=IMPORT_T1.log directory=DPUMP_DIR table_exists_action=REPLACE transform=LOB_STORAGE:SECUREFILE<\/pre>\n<p>This time, we can see that the LOB has been imported as SecureFile:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select table_name, securefile from user_lobs;\nTABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SECUREFILE\n------------------------------ ---------------\nT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES<\/pre>\n<p>&nbsp;<\/p>\n<h3>Parallel DML supported for LOB stored as SecureFiles on a non-partitioned table<\/h3>\n<p>With Oracle 11g, parallel DML is already supported with LOB columns, no matter if it is stored as BasicFile or SecureFile. But it is only supported for partitioned tables.<\/p>\n<p>Oracle 12c offers SecureFiles LOB support enhancements, since it is now possible to perform statements in parallel with LOB columns stored as SecureFiles on a non partitioned table. For LOB stored as BasicFile, the statement still runs in Serial mode, even if the parallel clause is specified.<\/p>\n<p>To demonstrate this new feature, I have created a table T1 on two 11g and 12c databases.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create table t1 (a BLOB)lob (a) store as SECUREFILE;\n&nbsp;\nSQL&gt; select table_name, securefile from user_lobs;\nTABLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SEC\n------------------------------ ---\nT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; YES<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">DECLARE\n&nbsp; src_lob BFILE := BFILENAME('DPUMP_DIR', 'myfile.txt');\n&nbsp; dest_lob BLOB;\nBEGIN\n&nbsp; INSERT INTO t1 VALUES(EMPTY_BLOB()) RETURNING a INTO dest_lob;\n&nbsp; DBMS_LOB.OPEN(src_lob, DBMS_LOB.LOB_READONLY);\n&nbsp; DBMS_LOB.LoadFromFile( DEST_LOB =&gt; dest_lob, SRC_LOB =&gt; src_lob, AMOUNT =&gt; DBMS_LOB.GETLENGTH(src_lob) );\n&nbsp; DBMS_LOB.CLOSE(src_lob);\n&nbsp; COMMIT;\nEND;\n\/<\/pre>\n<p><strong>11g<\/strong><br \/>\nNow let&#8217;s see what happens on the 11g database if I try to perform an INSERT AS SELECT statement in parallel. I used the dbms_xplan package to see the execution plan of the statement.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; set lines 200\nSQL&gt; alter session force parallel dml;\nSQL&gt; explain plan for insert into t1 select * from t1;\nExplained.\n&nbsp;\nSQL&gt; select * from table(dbms_xplan.display);<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/plan_11g.png\" alt=\"plan_11g\" width=\"919\" height=\"187\"><\/p>\n<p>Here we can see that the SELECT statement has been performed in parallel (it corresponds to the TABLE ACCESS FULL operation with ID 5), however the insertion of data was performed in serial, since the LOAD TABLE CONVENTIONAL operation (id 1) is above the PX COORDINATOR.<\/p>\n<p><strong>12c<\/strong><br \/>\nI perform exactly same operations on the 12c database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; set lines 200\nSQL&gt; alter session force parallel dml;\nSQL&gt; explain plan for 2 insert into t1 select * from t1;\nExplained.\n&nbsp;\nSQL&gt; select * from table(dbms_xplan.display);<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/plan_12c.png\" alt=\"plan_12c\" width=\"1004\" height=\"199\"><\/p>\n<p>This time, we can see that the LOAD AS SELECT operation has been performed in parallel mode, since it is located below the PX COORDINATOR operation on this execution plan.<br \/>\nA word about Oracle documentation: in the Oracle Database SecureFiles and Large Objects Developer&#8217;s Guide, we can read the following:<\/p>\n<p><em>Oracle supports parallel execution of most of the following DML operations when performed on partitioned tables with SecureFiles LOBs or BasicFiles LOBs, and non-partitioned tables with SecureFiles LOBs only<\/em><\/p>\n<ul>\n<li>INSERT<\/li>\n<li>INSERT AS SELECT<\/li>\n<li>CREATE TABLE AS SELECT<\/li>\n<li>DELETE<\/li>\n<li>UPDATE<\/li>\n<li>MERGE (conditional UPDATE and INSERT)<\/li>\n<\/ul>\n<p>[&#8230;]<\/p>\n<p>&#8220;<em>Most of the following DML<\/em>&#8221; does not necessary mean that all of these DML are supported. I performed some tests and I could only run INSERT AS SELECT, DELETE, UPDATE and CREATE TABLE AS SELECT (which is a DDL in fact) statements in parallel with SECUREFILE on a range partitioned table. On a non-partitioned table, only INSERT AS SELECT worked in parallel&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle Database 12c features with some enhancements for LOB objects and particularly for the SecureFiles. This is not a revolution, but we can see that the range of possibilities with LOB objects increases with the different releases of Oracle&#8230; SecureFiles is the default for LOB storage With Oracle 11g, when creating a table containing LOB [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":3203,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[],"type_dbi":[],"class_list":["post-3202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-management"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle Database 12c: SecureFiles enhancements - dbi Blog<\/title>\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\/oracle-12c-securefiles-enhancements\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Database 12c: SecureFiles enhancements\" \/>\n<meta property=\"og:description\" content=\"Oracle Database 12c features with some enhancements for LOB objects and particularly for the SecureFiles. This is not a revolution, but we can see that the range of possibilities with LOB objects increases with the different releases of Oracle&#8230; SecureFiles is the default for LOB storage With Oracle 11g, when creating a table containing LOB [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-08-13T23:50:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-14T09:20:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"406\" \/>\n\t<meta property=\"og:image:height\" content=\"100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"6 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\\\/oracle-12c-securefiles-enhancements\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Oracle Database 12c: SecureFiles enhancements\",\"datePublished\":\"2013-08-13T23:50:00+00:00\",\"dateModified\":\"2022-12-14T09:20:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/\"},\"wordCount\":937,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\",\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/\",\"name\":\"Oracle Database 12c: SecureFiles enhancements - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\",\"datePublished\":\"2013-08-13T23:50:00+00:00\",\"dateModified\":\"2022-12-14T09:20:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg\",\"width\":406,\"height\":100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-12c-securefiles-enhancements\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle Database 12c: SecureFiles enhancements\"}]},{\"@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 Database 12c: SecureFiles enhancements - dbi Blog","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\/oracle-12c-securefiles-enhancements\/","og_locale":"en_US","og_type":"article","og_title":"Oracle Database 12c: SecureFiles enhancements","og_description":"Oracle Database 12c features with some enhancements for LOB objects and particularly for the SecureFiles. This is not a revolution, but we can see that the range of possibilities with LOB objects increases with the different releases of Oracle&#8230; SecureFiles is the default for LOB storage With Oracle 11g, when creating a table containing LOB [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/","og_site_name":"dbi Blog","article_published_time":"2013-08-13T23:50:00+00:00","article_modified_time":"2022-12-14T09:20:39+00:00","og_image":[{"width":406,"height":100,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg","type":"image\/jpeg"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Oracle Database 12c: SecureFiles enhancements","datePublished":"2013-08-13T23:50:00+00:00","dateModified":"2022-12-14T09:20:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/"},"wordCount":937,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg","articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/","name":"Oracle Database 12c: SecureFiles enhancements - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg","datePublished":"2013-08-13T23:50:00+00:00","dateModified":"2022-12-14T09:20:39+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_b2ap3_thumbnail_Oracle_Database_12c.jpg","width":406,"height":100},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-12c-securefiles-enhancements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle Database 12c: SecureFiles enhancements"}]},{"@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\/3202","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=3202"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3202\/revisions"}],"predecessor-version":[{"id":21025,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3202\/revisions\/21025"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/3203"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=3202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=3202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=3202"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=3202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}