{"id":28396,"date":"2023-09-29T14:50:06","date_gmt":"2023-09-29T12:50:06","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=28396"},"modified":"2023-10-05T16:44:51","modified_gmt":"2023-10-05T14:44:51","slug":"new-features-23c-overview-in-extracts","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/","title":{"rendered":"New Features 23c, Overview (in extracts):"},"content":{"rendered":"\n<p>In this blog I want to introduce some of the new features of the Oracle 23c developer edition. It will be only a selection of some of the main features. It is not the intention to give you a thorough picture of all the features in this blog. I have tested some of the essential ones (in my opinion) on the new edition and I want to indicate some restrictions or deficiencies I\u2019ve figured out:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Up to 4.096 columns per table:<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>By default the maximum number of columns allowed for a table is 1000. If max_columns is set to extended and compatible=23.0.0 you can build tables with up to 4.096 columns.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; show parameter compatible\n\nNAME              TYPE    VALUE \n\n----------------- ------- ------\n\ncompatible        string  23.0.0\n\nSQL&gt; show parameter max_columns\n\nNAME              TYPE    VALUE \n\n----------------- ------- ------\n\nmax_columns       string  EXTENDED<\/code><\/pre>\n\n\n\n<p><strong><u>From clause is not necessary for several selects:<\/u><\/strong><\/p>\n\n\n\n<p>For some select you don\u2019t need the from (dual) clause, you can now query values, conversions or calculations in that easy way:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"357\" height=\"287\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png\" alt=\"\" class=\"wp-image-28406\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png 357w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80-300x241.png 300w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>\u201cNew\u201d datatype BOOLEAN:<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>Now we can define in Oracle 23c the datatype Boolean, using the keywords BOOL or BOOLEAN. For that I\u2019ve built a small table with boolean flags:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; create table bool_t1 (name varchar2(20), flag boolean);\n\ninsert into bool_t1 values ('no plan', false);\n\ninsert into bool_t1 values ('plan', yes);\n\ninsert into bool_t1 values ('no plan', 0);\n\ninsert into bool_t1 values ('plan', 1);\n\ninsert into bool_t1 values ('plan', 'yes');\n\ninsert into bool_t1 values ('no plan', 'no');\n\ninsert into bool_t1 values ('plan', true);\n\ninsert into bool_t1 values ('dont know', 't');\n\ninsert into bool_t1 values ('dont know', 'f');\n\ncommit;<\/code><\/pre>\n\n\n\n<p>Any select will give you now the boolean flag (0 or 1):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"232\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-81.png\" alt=\"\" class=\"wp-image-28408\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-81.png 334w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-81-300x208.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"230\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-82.png\" alt=\"\" class=\"wp-image-28409\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-82.png 334w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-82-300x207.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Drop\/create table if (not) exists<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>For create or drop table we can now mention the condition \u201cif exists\u201d or \u201dif not exists\u201d, which sounds clear for creating a table if it not exists or dropping a table which exists. It works fine anyway, but there are some teething troubles with that feature regarding the sqlplus-messages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In my examples the table \u201cIF\u201d was mentioned in the confirmation but the right table \u201cNAME_LIST\u201d was treated!<\/li>\n\n\n\n<li>The message was, that the table \u201cNAME_LIST\u201d has been dropped, but it has existed not at all!<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"577\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-83.png\" alt=\"\" class=\"wp-image-28411\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-83.png 600w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-83-300x289.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Object and schema annotations<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>With Oracle 23c you can now provide comments (annotations) for object-data and schemas. You see an example for a simple table with annotations:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"428\" height=\"366\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-84.png\" alt=\"\" class=\"wp-image-28413\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-84.png 428w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-84-300x257.png 300w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><\/figure>\n\n\n\n<p>Annotations can checked with the following (user\/all\/dba) views&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>user_annotations<\/li>\n\n\n\n<li>user_annotation_values<\/li>\n\n\n\n<li>user_annotations_usage<\/li>\n\n\n\n<li>user_annotation_text_metadata<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"329\" height=\"160\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-85.png\" alt=\"\" class=\"wp-image-28414\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-85.png 329w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-85-300x146.png 300w\" sizes=\"auto, (max-width: 329px) 100vw, 329px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Lock-free reservations<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>If a column with type NUMER is now marked as RESERVABLE multiple transactions for concurrent updates are allowed on it, so called \u201casynchronous\u201d transactions.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"262\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-86.png\" alt=\"\" class=\"wp-image-28416\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-86.png 605w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-86-300x130.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p>RESERVABLE columns are possible for tables with primary key (naturally because of the locks) and a column that contains no NULL values!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"224\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-87.png\" alt=\"\" class=\"wp-image-28417\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-87.png 605w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-87-300x111.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p>And the column can not be dropped before setting it to NOT RESERVABLE.<\/p>\n\n\n\n<p>There is a nice demonstration regarding the update-improvements, which you can see here:<\/p>\n\n\n\n<p>&nbsp;<a href=\"https:\/\/renenyffenegger.ch\/notes\/development\/databases\/Oracle\/Releases-and-versions\/23c\/index\">Oracle 23c: New features (renenyffenegger.ch)<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Conditional table updates<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>Another feature are combined and\/or conditional updates with joins over several tables. It works quite good, with a small restriction:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"276\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-88.png\" alt=\"\" class=\"wp-image-28419\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-88.png 605w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-88-300x137.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p>Updates with condition in join-clause, but not working on tables with reservable columns!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Inserting multiple records with \u201ctable value constructors\u201d<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>So called \u201ctable values constructors\u201d are introduced in Oracle 23c which allow us allows us to insert multiple rows into a table in one single step or operation and the same constructor can even be used for queries in the the FROM-clause<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"596\" height=\"206\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-89.png\" alt=\"\" class=\"wp-image-28420\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-89.png 596w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-89-300x104.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Schema-level privileges<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>In former versions it was a bit tricky to grant privileges of on schema. Now you can accomplish this with one single command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; grant select any table on <strong>schema<\/strong> demo_user to scott;<\/code><\/pre>\n\n\n\n<p><strong><u>GROUP BY and HAVING on position or alias<\/u><\/strong><\/p>\n\n\n\n<p>With Oracle 23c you can easily use column aliases or position numbers in GROUP BY and HAVING clauses without to specify the complete references defined. It works if group_by_position_enabled is set to true!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"315\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-90.png\" alt=\"\" class=\"wp-image-28422\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-90.png 499w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-90-300x189.png 300w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>New developer role (db_developer_role)<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>For developers\u2019 purposes the new db_developer_role is available now, but not yet the dbms_developer_admin package in Oracle 23c free edition:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"224\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-91.png\" alt=\"\" class=\"wp-image-28423\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-91.png 576w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-91-300x117.png 300w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/figure>\n\n\n\n<p>Which privileges are in the role? We can check it with the queries below: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL &gt;\n\nvariable v_role VARCHAR2(30)\nexec :v_role := 'DB_DEVELOPER_ROLE';\n\n-- System Privileges\nselect sp.privilege\nfrom   dba_sys_privs sp\nwhere  sp.grantee = :v_role\norder by 1;\n\nPRIVILEGE\n----------------------------------------\nCREATE ANALYTIC VIEW\nCREATE ATTRIBUTE DIMENSION\nCREATE CUBE\nCREATE CUBE BUILD PROCESS\nCREATE CUBE DIMENSION\nCREATE DIMENSION\nCREATE DOMAIN\nCREATE HIERARCHY\nCREATE JOB\nCREATE MATERIALIZED VIEW\nCREATE MINING MODEL\nCREATE MLE\nCREATE PROCEDURE\nCREATE SEQUENCE\nCREATE SESSION\nCREATE SYNONYM\nCREATE TABLE\nCREATE TRIGGER\nCREATE TYPE\nCREATE VIEW\nDEBUG CONNECT SESSION\nEXECUTE DYNAMIC MLE\nFORCE TRANSACTION\nON COMMIT REFRESH\n\n24 rows selected.\n\nSQL&gt;\n\n-- Role Privileges\nselect rp.granted_role\nfrom   dba_role_privs rp\nwhere  rp.grantee = :v_role\norder by 1;\n\nGRANTED_ROLE\n--------------------------------------------------------------------------------\nCTXAPP\nSODA_APP\n\nSQL&gt;\n\n-- Object Privileges\ncolumn privilege format a30\ncolumn table_name format a30\n\nselect tp.privilege, tp.table_name \nfrom   dba_tab_privs tp\nwhere  tp.grantee = :v_role\norder by 1, 2;\n\nPRIVILEGE                      TABLE_NAME\n------------------------------ ------------------------------\nEXECUTE                        JAVASCRIPT\nREAD                           V_$PARAMETER\nREAD                           V_$STATNAME\nSELECT                         DBA_PENDING_TRANSACTIONS\n<\/code><\/pre>\n\n\n\n<p>cf. <a href=\"https:\/\/oracle-base.com\/articles\/23c\/db_developer_role-23c\">ORACLE-BASE &#8211; DB_DEVELOPER_ROLE Role in Oracle Database 23c<\/a><\/p>\n\n\n\n<p>Normally the privileges will be sufficient. The only permissions missing are in comparison to:<\/p>\n\n\n\n<p>CONNECT ROLE:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SET CONTAINER&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>RESOURCE ROLE:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CREATE CLUSTER<\/li>\n\n\n\n<li>CREATE INDEXTYPE<\/li>\n\n\n\n<li>CREATE OPERATOR<\/li>\n\n\n\n<li>CREATE PROPERTY GRAPH<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>SQL-domains<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>With so called SQL-domains we can now define data properties and constraints not only on object level, but also as one single Point Of Definition (SPOD). The definition related to a column can now be reused accross the whole schema or database.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"365\" height=\"257\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-93.png\" alt=\"\" class=\"wp-image-28427\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-93.png 365w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-93-300x211.png 300w\" sizes=\"auto, (max-width: 365px) 100vw, 365px\" \/><\/figure>\n\n\n\n<p>This is only a short overview over domains in Oracle 23c, there are pretty more options like multi clolumn domains and constraints.<\/p>\n\n\n\n<p>Information about domains is stored in DBA_DOMAINS and relevant SQL-functions are<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>domain_display<\/li>\n\n\n\n<li>domain_order<\/li>\n\n\n\n<li>domain_name<\/li>\n\n\n\n<li>domain_check<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"440\" height=\"143\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-94.png\" alt=\"\" class=\"wp-image-28428\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-94.png 440w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-94-300x98.png 300w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>New PL\/SQL packages and further functionalities<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p>There are three new packages in Oracle 23c<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dbms_search<\/li>\n\n\n\n<li>dbms_hcheck<\/li>\n\n\n\n<li>dbms_sql_firewall<\/li>\n<\/ul>\n\n\n\n<p>I will give an overview to this in the next blog and especially to some JSON features and blockchain table enhancements.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><u>Sources and complementary articles<\/u><\/strong><\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/www.oracle.com\/database\/23c\/\">https:\/\/www.oracle.com\/database\/23c\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/oracle-base.com\/articles\/23c\/articles-23c\">ORACLE-BASE &#8211; Oracle 23c Articles<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/renenyffenegger.ch\/notes\/development\/databases\/Oracle\/Releases-and-versions\/23c\/index\">Oracle 23c: New features (renenyffenegger.ch)<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/blogs.oracle.com\/database\/post\/oracle-database-23c-the-next-long-term-support-release\">https:\/\/blogs.oracle.com\/database\/post\/oracle-database-23c-the-next-long-term-support-release<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In this blog I want to introduce some of the new features of the Oracle 23c developer edition. It will be only a selection of some of the main features. It is not the intention to give you a thorough picture of all the features in this blog. I have tested some of the essential [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198,368,59],"tags":[2968,2976,481,1672,3101,1384,67,98,1923],"type_dbi":[],"class_list":["post-28396","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","category-development-performance","category-oracle","tag-oracle-3","tag-developer","tag-lock","tag-new-features","tag-oracle-23c","tag-oracle-security","tag-performance","tag-sql","tag-update"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>New Features 23c, Overview (in extracts): - dbi Blog Oracle 23c New Features<\/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\/new-features-23c-overview-in-extracts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New Features 23c, Overview (in extracts):\" \/>\n<meta property=\"og:description\" content=\"In this blog I want to introduce some of the new features of the Oracle 23c developer edition. It will be only a selection of some of the main features. It is not the intention to give you a thorough picture of all the features in this blog. I have tested some of the essential [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-29T12:50:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-05T14:44:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png\" \/>\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=\"7 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\\\/new-features-23c-overview-in-extracts\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"New Features 23c, Overview (in extracts):\",\"datePublished\":\"2023-09-29T12:50:06+00:00\",\"dateModified\":\"2023-10-05T14:44:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/\"},\"wordCount\":809,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/09\\\/image-80.png\",\"keywords\":[\"#Oracle\",\"developer\",\"lock\",\"New Features\",\"Oracle 23c\",\"oracle security\",\"Performance\",\"SQL\",\"update\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\",\"Development &amp; Performance\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/\",\"name\":\"New Features 23c, Overview (in extracts): - dbi Blog Oracle 23c New Features\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/09\\\/image-80.png\",\"datePublished\":\"2023-09-29T12:50:06+00:00\",\"dateModified\":\"2023-10-05T14:44:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/09\\\/image-80.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/09\\\/image-80.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-features-23c-overview-in-extracts\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New Features 23c, Overview (in extracts):\"}]},{\"@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":"New Features 23c, Overview (in extracts): - dbi Blog Oracle 23c New Features","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\/new-features-23c-overview-in-extracts\/","og_locale":"en_US","og_type":"article","og_title":"New Features 23c, Overview (in extracts):","og_description":"In this blog I want to introduce some of the new features of the Oracle 23c developer edition. It will be only a selection of some of the main features. It is not the intention to give you a thorough picture of all the features in this blog. I have tested some of the essential [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/","og_site_name":"dbi Blog","article_published_time":"2023-09-29T12:50:06+00:00","article_modified_time":"2023-10-05T14:44:51+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png","type":"","width":"","height":""}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"New Features 23c, Overview (in extracts):","datePublished":"2023-09-29T12:50:06+00:00","dateModified":"2023-10-05T14:44:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/"},"wordCount":809,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png","keywords":["#Oracle","developer","lock","New Features","Oracle 23c","oracle security","Performance","SQL","update"],"articleSection":["Database Administration &amp; Monitoring","Database management","Development &amp; Performance","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/","url":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/","name":"New Features 23c, Overview (in extracts): - dbi Blog Oracle 23c New Features","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png","datePublished":"2023-09-29T12:50:06+00:00","dateModified":"2023-10-05T14:44:51+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/image-80.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/new-features-23c-overview-in-extracts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"New Features 23c, Overview (in extracts):"}]},{"@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\/28396","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=28396"}],"version-history":[{"count":16,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/28396\/revisions"}],"predecessor-version":[{"id":28429,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/28396\/revisions\/28429"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=28396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=28396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=28396"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=28396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}