مقدمه :
برخی از ویژگی های جدید اورکل 23c که در آینده منتشر خواهد شد را طبق مستندات و ارایه ها تهیه کنندگان آن، در این مستند مورد بررسی قرار خواهیم داد. باید این نکته را در نظر داشت نسخه 23C از نوع Long Term Support می باشد و طبق گفته ها تا سال 2028 پشتیبانی دارد و تا 2031 ادامه دارد.
امکانات پایگاه داده 23C :
اجرای دستور select بدون نام جدول : در مواقعی که از جدول dual استفاده می کنیم. دیگر لازم نیست عبارت from dual را درج کنیم
Select sysdate;
استفاده از alias ستون ها در group by و having: از نام های مستعار در دستورات group by و having نمی شد استفاده کنیم، قابلیتی که در order by وجود دارد. حالا از نسخه 23c این قابلیت اضافه می شود. کد نویسی ساده تر!!!
Select first_name fn,count(*) from family group by fn;
استفاده از دستورات شرطی if exists و if not exist در دستورات DDL: با استفاده از این قابلیت می توان به دستورات DDL قابلیت کنترل را داد که مانند مثال اگر جدول با این نام وجود دارد آن را drop کن و در غیر اینصورت هیچ. پس در این حالت دستور با خطا مواجه نمی شود.
Drop table family;
Ora-00942 = ….
Drop table if exists family;
Table dropped.
ایجاد ساختار Table Value: همواره در شرایطی لازم می شود که تعداد رکوردی خارج از جداول داشته باشیم تا در دستورات خود از انها استفاده کنیم در گذشته باید آنها را تبدیل به جدول می کردیم و یا function table ها استفاده می کردیم. حال با قابلیت table value این امر به راحتی قابل اجرا می باشد.
Select fname,lname from (values (‘ali’,’alian’),(‘mohammad’,’mohammadian’)) t1 (fname,lname);
Fnam lname
----------------
Ali alian
Mohammad mohammadian
استفاده retuning دردستورات merge : پس از انجام یک دستور DML، نتیجه نهایی را می توان به client بازگرداند (به عنوان مثال یک Cient PL/SQL). با این حال، تا کنون RETURNING برای MERGE در دسترس نبود و فقط پس از انجام یک بهروزرسانی(Update )، مقدار جدید را برمیگرداند. از 23C، میتوانیم از عبارت OLD column_name برای بدست آوردن مقدار ستون اصلی استفاده کنیم.
Merge into family f using (select salary,personid from persons) p on p.personid=f.id
When matched then update set f.income = p.salary
When not matched then insert into (f.income,f.id) values (p.salary, p.personid)
Returnin f.income,p.salary into :n1 , :n2;
بهبود متن خطا ها : در این نسخه سعی شده خطا ها تا جای ممکن شفاف تر باشند.
Select * from hr.family;
Ora-00942 = table or view dose not exist
Select * from hr.family;
Ora-00942 = table or view (“hr”,”family”)dose not exist
دسترسی در sechma : امکان اعطای دسترسی به تمام اشیاء در یک schema در یک عبارت واحد.
GRANT SELECT ANY TABLE ON SCHEMA <schema name> TO <user name>;
نقش developer: به سرعت دسترسی های لازم را برای انجام توسعه پایگاه داده در اختیار کاربر قرار دهید.
Exec dbms_developer_admin.grant_privs(dev_name);
اضافه شدن boolean typeدر ستون ها : می توانیم ستون هایی از نوع booleanدر جداول خود تعریف کنیم و از آنها استفاده کنیم.
برخی دیگر از قابلیت های اضافه شده ک تا به حال در مستندات وکنفرانس ها و ... از آنها صحبت شده :
· ساخت جدول با 4K ستون
· Json schema
· SQL Domains
· JavaScript Stored Procedures
· Oracle Database <=> Kafka integration
· OAuth 2.0 integration
· ...