اوراکل اپکس- چند نکته در دیتابیس اوراکل۳

چند نکته در دیتابیس اوراکل-قسمت سوم

 

چند نکته در دیتابیس اوراکل-قسمت اول
چند نکته در دیتابیس اوراکل-قسمت دوم

 

نحوه استفاده فيلد تاريخ در اوراکل از طریق كوئري دايناميك

v_where :=
'To_Date('''||To_Char(:P_Sysdate,'YYYY/MM/DD')||''',
''YYYY/MM/DD'') Between FIELD_FROM_DATE And
Nvl(a.FIELD_TO_DATE,To_Date('''||To_Char(:P_Sysdate,'YYYY/MM/DD')||''',''YYYY/MM/DD''))';
بيشترين تعداد ستون در هر يك از جداول اوراكل
  • براي Oracle 7 برابر است با 254 ستون.
  • براي Oracle 8i, 9i, 10g, 11g, 12c برابر است با 1000 ستون
نكته: اين بدين معني نمي باشد كه شما نرمال سازي بر روي جداول را انجام ندهيد و همه اطلاعات را در يك جدول نگهداري كنيد.
در مورد JSON در دیتابیس اوراکل
اوراکل در نسخه 12C به بعد اعلام میکند که:
ACID(Atomicity, Consistency, Isolation, Durability) transactions over JSON documents
Full SQL access to JSON documents, ?providing scalable reporting and analytics? for document-store applications as well as ?simple integration between JSON documents, relational data, and other data types.?
With JSON documents fully embedded in the Oracle Database, document-store applications can also realize all of the benefits of Oracle Database’s enterprise-level ?availability, scalability security, and manageability?
همچنین یک عمگر جدید در SQL/JSON به نام 😕JSON_TABLE? که دارای سه مشخصه زیر است:
  • Generate rows from a JSON Array.
  • Pivot properties / key values into columns.
  • Use Nested Path clause to process multi-level collections with a single JSON_TABLE operator
حال با مثال بیان می کنم:
select M.*
from J_PURCHASEORDER p,
JSON_TABLE(p.PO_DOCUMENT,'$'columns
PO_NUMBER NUMBER(10) path '$.PONumber',
REFERENCE VARCHAR2(30 CHAR) path '$.Reference',
REQUESTOR VARCHAR2(32 CHAR) path '$.Requestor',
USERID VARCHAR2(10 CHAR) path '$.User',
COSTCENTER VARCHAR2(16) path '$.CostCenter'
) M
where PO_NUMBER > 1600 and PO_Number < 1605
حذف ركوردهاي تكراري از جدول در اوراکل
يكي از مسائلي كه براي توسعه دهندگان ديتابيس رخ مي هد حذف ركوردهاي تكراري از جداول مي باشد. حال اين عمل را مي توان در هر محيطي و بدون اينكه بخواهيد از امكانات ابزار خاصي استفاده كنيد انجام دهيد.
DELETE TB a
WHERE a.ROWID > (SELECT MIN(b.ROWID) FROM TB b WHERE b.F1 = A.F1)
در مثال بالا فقط از يك فيلد يكتا استفاده شده، حال شما بايد نسبت به جدول و ركوردهاي تكراري كه مي خواهيد حذف كنيد فيلدهاي خود را در شرط اضافه كنيد.
نکته: البته ابزار هایی مانند Toad این امکان را بصورت ویزاردی برای شما فراهم می کند.
در مورد Case-sensitive passwords در اوراکل
  • تا نسخه Oracle database 11g Release 1 پسوردها درون دیتابیس بصورت case-insensitive بود. ولی از این نسخه به بعد بصورت استاندارد Case-sensitive شد.
  • این امکان وجود دارد که بتوانیم آنرا فعال و غیرفعال کنیم. یک پارامتر بنام sec_case_sensitive_logon وجود دارد.
  • حال برای فعال و غبرفعال کردن آن به طریق زیر عمل می کنیم.

ALTER SYSTEM SET sec_case_sensitive_logon=false;
ولی پیشنهاد می شود که Case-sensitive passwords را غیر فعال نکنید.

 

4.7/5 - (3 امتیاز)

1 دیدگاه. پیغام بگذارید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)