تالار های تخصصی

متن مرتبط با «برای» در سایت تالار های تخصصی نوشته شده است

اوراکل 23c – بهبودی برای دستور CASE در PL/SQL

  • اوراکل در نسخه 23c قابلیت جدیدی را برای دستور CASE در محیط PL/SQL ارائه کرده است که در این متن با آن آشنا خواهیم شد. در ابتدا شکل ساده دستور CASE در PL/SQL را با یک مثال مرور می کنیم: declare VALUE number := 3; text varchar2(50); begin text := case VALUE when 1 then 'ONE' when 2 then 'TWO' when 3 then 'THREE' else 'NOT ONE, TWO NOR THREE' end; dbms_output.put_line(text); end; / THREE در این قطعه کد صرفا از عملگر مساوی استفاده شده است و برای استفاده از عملگرهای دیگر نظیر “>”، “<“، BETWEEN و IN باید از فرمت زیر که Searched CASE syntax نامیده می شود، استفاده کنیم: declare VALUE number := 3; text varchar2(50); begin text := case when VALUE < 0 OR VALUE > 5 then 'OUT OF RANGE' when VALUE in (1, 2) then 'ONE OR TWO' when VALUE between 0 and 3 then 'BETWEEN 0 AND 3 BUT NOT 1 NOR 2' else 'OTHER' end; dbms_output.put_line(text); end; / BETWEEN 0 AND 3 BUT NOT 1 NOR 2 همچنین می توان این کد را به فرمت زیر هم نوشت: declare VALUE number := 3; text varchar2(50); begin case when VALUE < 0 OR VALUE > 5 then text :='OUT OF RANGE'; when VALUE in (1, 2) then text :='ONE OR TWO'; when VALUE between 0 and 3 then text :='BETWEEN 0 AND 3 BUT NOT 1 NOR 2'; , ...ادامه مطلب

  • اوراکل 23c – قابلیت Automatic List Partitioning برای جداول هیبریدی

  • Hybrid Partitioned Table قابلیت جدیدی است که اوراکل در نسخه 19c ارائه کرده است با کمک این قابلیت می توان برای یک جدول، تلفیقی از پارتیشنهای exteal و inteal را ایجاد کرد. این روش از پارتیشن بندی، صرفا متدهای Range و List را پشتیبانی می کند البته در نسخه 19c امکان استفاده از متد Automatic List برای Hybrid Partitioned Table وجود ندارد و این امکان از نسخه 23c به وجود آمد. بنابرین از این نسخه(23c) می توانیم برای جداول Hybrid Partitioned Table از قابلیت Automatic List Partitioning استفاده کنیم. قبل از ایجاد جدول مورد نظر، دایرکتوری مربوط به دیتایی که در سیستم عامل قرار دارند را ایجاد می کنیم: SQL> create directory E_PARTITIONs as '/PARTITIONs'; Directory created جدول mytbl از نوع هیبریدی است و  به روش Automatic List پارتیشن بندی شده است: SQL> CREATE TABLE mytbl 2 ( 3 national_id NUMBER, 4 name VARCHAR2(20), 5 last_name VARCHAR2(20), 6 org_id NUMBER 7 ) 8 EXTERNAL PARTITION ATTRIBUTES( 9 TYPE ORACLE_LOADER 10 DEFAULT DIRECTORY E_PARTITIONs 11 ACCESS PARAMETERS 12 ( 13 FIELDS TERMINATED BY ',' (national_id,name,last_name,org_id) 14 ) 15 REJECT LIMIT UNLIMITED 16 ) 17 PARTITION BY LIST (org_id) AUTOMATIC 18 ( 19 PARTITION p1 VALUES (1), 20 PARTITION p2 VALUES (2), 21 PARTITION p_exteal VALUES (3) EXTERNAL LOCATION('part1.txt') 22 ); Table created در صورت فعال نبودن قابلیت Automatic List Partitioning، ستون org_id صرفا مقادیر 1، 2 و 3 را قبول می کرد اما, ...ادامه مطلب

  • کدام محله های منطقه 22 دریاچه چیتگر محیط مناسب تری برای زندگی دارد؟

  • محله دریاچه چیتگر منطقه 22 دریاچه چیتگر رینگ جنوب دریاچه چیتگر؟!محدوده پارک جنگلی چیتگر و بزرگراه شهید همدانی ( امتداد بزرگراه حکیم ) در سمت جنوب دریاچه چیتگر ساخت و سازی انجام نشده است و این مناطق در اختیار منابع طبیعی میباشد رینگ شمالی دریاچه چیتگر ؟! رینگ شمالی دریاچه چیتگر یکی از مرغوب ترین لوکیشن های منطقه 22 تهران دریاچه چیتگر میباشد که میتواند پیشنهاد مناسبی برای خرید آپارتمان در منطقه 22 تهران دریاچه چیتگر باشد  ، بسیاری از برج های منطقه 22 تهران دریاچه چیتگر مثل برج های پارسیا ، برج ساحل سپانیر ، برج پاسارگاد تعاونی شهید همت ، برج های عرفان شرکت سازه پایدار  ، برج های آسمان تعاونی های سپاه  و … که اکثرا برای تعاونی های سپاه و ارتش هستن شمال دریاچه چیتگر ساخته شده اند رینگ شمالی دریاچه چیتگر بخاطر اینکه یکی از اولین مناطقی در منطقه 22 تهران میباشد که حتی قبل از آبگیری دریاچه عملیات ساخت و ساز در این منطقه شروع شده بود  محوطه سازی و حریم برج ها به خوبی انجام شده و برج های در حال ساخت در این لوکیشن بسیار کم هستند  ، از لحاظ شلوغی و ترافیک وسائل نقلیه  هم بغییر از تایم های خاص در روز های تعطیل مشکلی برای ساکنین ایجاد نکرده1 . دسترسی آسان به مراکز تجاری قبیل سوپر مارکت ، میوه تربار و هر چیزی که مورد نیاز زندگی روزمره هستش .2 . دسترسی آسان به اتوبان شهید خرازی ( امتداد اتوبان شهید همت )3 . دسترسی آسان به مرکز تجارت ایرانمال رینگ غربی دریاچه چیتگر؟! به جرات میشه گفت یکی از خلوت ترین و دنج ترین محله های منطقه ۲۲  تهران دریاچه چیتگر همین رینگ غربی دریاچه چیتگر میباشد  ، دور از هیاهو و سر صدا ، ساخت پروژه های لوکس مثل لبخند ۱ و ۲  , ...ادامه مطلب

  • اوراکل 23c – پارامتر error_message_details برای نمایش جزییات خطا

  • error_message_details یکی دیگر از پارامترهای جدید اوراکل در نسخه 23c هست که امکان نمایش جزییات خطاهای مربوط به Data Value را فراهم می کند با تنظیم این پارامتر به مقدار on، می توانیم برای خطاهایی نظیر ORA-00001: unique constraint violated، مقداری که سبب رخ دادن این دسته از خطاها شده است را در متن خطا ببینیم. برای مثال، در سناریوی زیر، فعال بودن پارامتر error_message_details در پیدا کردن مقداری که باعث این خطا شده است کمک می کند: SQL> create table tbl1(id number primary key); Table created. SQL> variable B number; SQL> exec :B:=2547; PL/SQL procedure successfully completed. SQL> insert into tbl1 values(:B); 1 row created. SQL> insert into tbl1 values(:B); ERROR at line 1: 'ORA-00001: unique constraint (USEF.SYS_C008328) violated on table USEF.TBL1 columns (ID)' 'ORA-03301: (ORA-00001 details) row with column values (ID:2547) already exists' Help: https://docs.oracle.com/error-help/db/ora-00001/ در صورتی که پارامتر error_message_details غیر فعال شود، خطای فوق به شکل زیر نمایش داده می شود: SQL> alter system set error_message_details=DISALLOWED ; System altered. SQL> insert into tbl1 values(:B); 'ORA-00001: unique constraint (USEF.SYS_C008329) violated on table USEF.TBL1 columns (ID)' Help: https://docs.oracle.com/error-help/db/ora-00001/ وحید یوسف زادهارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected] بخوانید, ...ادامه مطلب

  • قابلیتهای جدید اوراکل 23c برای جداول Blockchain و Immutable

  • در این مطلب سعی داریم تعدادی از قابلیتهای جدید اوراکل 23c در زمینه جداول Blockchain و Immutable را مرور کنیم. امکان حذف  و اضافه کردن ستون به جداول Blockchain و Immutable در نسخه 23c می توان به جداول Blockchain ستونی را اضافه کرد(البته در version v2 این نوع از جداول): SQL> create blockchain table blockchaintb1 ( id number(10), desc1 varchar2(100) ) no drop until 20 days idle no delete until 20 days after insert hashing using "SHA2_512" version "v2"; Table created. SQL> alter table blockchaintb1 add (desc2 varchar2(1000)); Table altered. حذف ستون هم در این نسخه امکان پذیر است: SQL> alter table blockchaintb1 drop column desc2; Table altered. در صورت درج اطلاعات در این نوع از جداول، باز هم می توان عملیات فوق را تکرار کرد: SQL> insert into blockchaintb1 values(1,'Amir Hozhabri','Sori Masoud'); 1 row created. SQL> commit; Commit complete. SQL> alter table blockchaintb1 drop column desc2; Table altered. نکته: برای مشاهده version هر کدام از Blockchain Tableها می توان از ویوی user_blockchain_tables استفاده کرد(user_blockchain_tables.TABLE_VERSION). قابلیت فوق برای version V2 جداول immutable هم به وجود آمد: SQL> create immutable table Immtb1 ( id number(10), desc1 varchar2(100) ) no drop until 200 days idle no delete until 200 days after insert version "v2"; Table created. SQL> alter table Immtb1 add (desc2 varchar2(1000)); Table altered. SQL> alter table Immtb1 drop column desc2; Table altered. تنظیم حداکثر مدت زمان برای idle, ...ادامه مطلب

  • اوراکل 23c – استفاده از پروسیجر JSON_TYPE_CONVERTIBLE_CHECK برای جابجایی دیتای JSON

  • اوراکل در نسخه 21c دیتاتایپ JSON را ارائه کرد و تا قبل از آن، دیتای JSON را می توانستیم در ستونهایی با نوع داده CLOB، BLOB و حتی VARCHAR ذخیره کنیم با این اوصاف اگر دیتابیس را به تازگی به نسخه 21c(و نسخ بالاتر) ارتقا دادیم ممکن است بخواهیم دیتای از نوع JSON را به ستونی که دیتاتایپ آن JSON است منتقل کنیم. در نسخه 23c، پروسیجری اضافه شده است که می تواند در این فرایند مورد استفاده قرار بگیرد و بعضا بسیار راهگشا باشد. پروسیجر dbms_json.json_type_convertible_check ستونی را به عنوان ورودی می گیرد و بررسی می کند همه فیلدهای آن ستون حاوی دیتای معتبر با فرمت JSON هستند و اگر در این بررسی خطایی رخ دهد این خطا از طریق جدول json_data_precheck قابل مشاهده است. در ادامه جدولی را ایجاد می کنیم که ستونی از نوع CLOB دارد قرار است دیتای JSON را در این ستون ذخیره کنیم البته محدودیت is json constraint check را برای این ستون تنظیم نمی کنیم تا در هنگام ذخیره کردن اطلاعات، دیتای نامعتبر هم در آن قابل درج باشد. SQL> create table author_tbl( 2 ID number generated always as identity, 3 author_desc clob 4 ); Table created SQL> insert into author_tbl(author_desc) values('{"NAME" : "Abbas Hamidian","GENDER" : "m","CURRENT_JOB" : "Oracle DBA"}'); 1 row inserted SQL> insert into author_tbl(author_desc) values('{Ali Fazli}'); 1 row inserted SQL> insert into author_tbl(author_desc) values('usefzadeh.com'); 1 row inserted SQL> commit; Commit complete قصد داریم اطلاعات ستون Author_Desc را به ستونی از نوع داده JSON منتقل کنیم(در اوراکل 23c). قبل از جابجایی دیتا، از طریق پروسیجر dbm, ...ادامه مطلب

  • اوراکل 23c -قابلیت Automatic Transaction Rollback(تنظیم اولویت برای تراکنشها)

  • در صورتی که دو کاربر قصد ویرایش یک رکورد را داشته باشند، کاربری که دیرتر دستور update را اجرا کرده Block خواهد شد و تا زمانی که کاربر اول(کاربری که زودتر رکورد را در اختیار گرفته) به تراکنش خاتمه ندهد، کاربر دوم در حالت Block باقی خواهد ماند. --session 1: SQL> select sid from v$mystat where rownum=1; SID ---------- 2190 SQL> update USEF.TBL1 set id=1; 1 row updated --session 2: SQL> select sid from v$mystat where rownum=1; SID ---------- 944 SQL> update USEF.TBL1 set id=1; Executing… بلاک شدن session دوم را می توانیم از طریق دستور زیر ببینیم: SQL> select SID,ID1,ID2,LMODE,block,request from v$lock where type='TX'; SID ID1 ID2 LMODE BLOCK REQUEST ---------- ---------- ---------- ---------- ---------- ---------- 944 458766 2511 0 0 6 2190 458766 2511 6 1 0 ممکن است کاربر دوم که تراکنشش در حالت انتظار قرار دارد، برای ما اولویت بیشتری داشته باشد. در این حالت چه راهکاری وجود دارد؟ اوراکل در نسخه 23c با ارائه چند پارامتر این مسئله را قابل کنترل کرده است و این امکان را فراهم کرده تا اگر تراکنشهای با اولویت پایین، سد راه تراکنشهای با اولویت بالا شوند، به صورت خودکار و با گذراندن زمان مشخصی، تراکنشهای با اولویت کمتر rollback شوند. پارامترهای مربوط به قابلیت Automatic transaction rollback را در قسمت زیر مشاهده می کنید: txn_priority string HIGH txn_auto_rollback_mode , ...ادامه مطلب

  • اوراکل 23c- قابلیت DEFAULT ON NULL برای update و insert

  • از نسخه های قدیمی اوراکل این امکان را داشتیم که برای ستونهای جداول، مقدار پیش فرض و یا همان Default Value تعریف کنیم. با تنظیم Default Value برای یک ستون، اگر در زمان اجرای دستور insert مقداری را برای آن ستون لحاظ نکرده باشیم، Default Value برای آن ستون اعمال خواهد شد: SQL*Plus: Release 10.1.0.4.2 - Production on Sat Aug 5 16:28:29 2023 SQL> create table tbl1(id number,tarikh date default sysdate+1); Table created. SQL> insert into tbl1(id) values(1); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 در این شرایط اگر به صراحت مقدار NULL را برای ستون tarikh در نظر بگیریم چه اتفاقی می افتد؟ SQL> insert into tbl1 values(2,null); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 2 همانطور که می بینید، Default value در این حالت اعمال نشده است! اوراکل در نسخه 12cR1 قابلیتی را اضافه کرده تا بتوان در این حالت هم مقدار Default Value به جای NULL برای ستون مورد نظر اعمال شود: SQL*Plus: Release 12.1.0.2.0 Production on Sat Aug 5 16:30:29 2023 SQL> create table tbl1(id number,tarikh date default on null sysdate+1); Table created. SQL> insert into tbl1(id) values(1); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 SQL> insert into tbl1 values(2,null); 1 row created. SQL> select * from tbl1; ID TARIKH ---------- --------- 1 06-AUG-23 2 06-AUG-23 در این شرایط، با توجه به شر, ...ادامه مطلب

  • غیرفعال کردن Auto Indexing برای ad hoc query

  • اوراکل در نسخه 21c با ارائه پارامتر OPTIMIZER_SESSION_TYPE امکان غیرفعال کردن automatic indexing را در سطح session فراهم کرده است. مقدار پیش فرض این پارامتر برابر با NORMAL است و با تنظیم این پارامتر به مقدار ADHOC، همه QUERYهایی که در session جاری اجرا می شوند، از دید Auto Indexing نادیده گرفته خوا, ...ادامه مطلب

  • اوراکل 21c –  تنظیم خصوصیت compression برای ایندکس در زمان import

  • به عنوان یک قابلیت جدید در اوراکل 12cR1 می توانستیم در زمان برگرداندن دامپ خصوصیت فشرده سازی را برای جداول فعال/غیرفعال کنیم. این کار از طریق پارامتر TRANSFORM در دستور impdp قابل انجام است: SQL*Plus: Release 12.2.0.1.0 Production SQL> select compression from dba_tables where table_name = 'TB, ...ادامه مطلب

  • اعمال auditing برای همه editionهای یک object

  • قابلیت unified auditing در اوراکل نسخه 21c، عملیات auditing را برای همه editionهای یک object امکان پذیر می سازد و حتی اگر در آینده edition جدیدی ایجاد شود، auditing در سطح edition جدید هم اعمال خواهد شد. برای مثال، ویوی vw_IRIR را در دو edition مختلف ایجاد می کنیم: SQL> alter session set edition=, ...ادامه مطلب

  • آموزش SQL و PL/SQL برای دیتابیس اوراکل(دانلود فایل PDF)

  • دانلود آموزش SQL شامل مطالب Oracle Database 12c R2: SQL Workshop I و Oracle Database 12c R2: SQL Workshop II(نویسنده مطلب: مهندس میلاد خالقی) SQL_DOC_PDF دانلود آموزش برنامه نویسی PL/SQL برای دیتابیس اوراکل(نویسنده مطلب: مهندس میلاد خالقی) PLSQL_DOC, ...ادامه مطلب

  • جملات زیبا و جدید برای تبریک روز طبیعت

  • سیزدهمین روز فروردین بعد از انقلاب در تقویم های رسمی ایران روز طبیعت نامگذاری شده است. جشن سیزده بدربه منظور پایان نوروز برگزار می شود و این روز از تعطیلات رسمی است. در قسمت زیر اس ام اس وپیامک تبریک روز طبیعت را قرار داده ایم. برای استفاده از این پی, ...ادامه مطلب

  • جملات زیبا برای تبریک تولد , عزیزم تولدت مبارک

  • روز تولد از بزرگترین اتفاق های زندگی هر شخص است. وقتی روز تولد هریک از عزیزانتان فرا میرسد شمامی توانید به شیوه های مختلف به آنها تبریک بگویید. ما نیز به همین بهانه جملات زیبا برای تبریک تولد راگردآوری کرده ایم. برای استفاده از این پیامک ها و جملات د, ...ادامه مطلب

  • جملات زیبا و جدید برای تبریک ولادت حضرت علی

  • ۱۳ رجب سالروز ولادت حضرت علی امام اول شیعیان است. در تقویم جمهوری اسلامیروز ولادت امیر المومنین را روز پدر و مرد نامگذاری کرده اند. در قسمت زیر جملات زیباو جدید برای تبریک ولادت حضرت علی را قرار داده ایم. برای استفاده از این پیامک هادر سایت نیک صالحی همراه ما باشید. تبریک ولادت حضرت علی ولادت باسعادت مولای عاشقان، امیر مؤمنان، علی علیه السلام، مبارک باد. ****** قرآن جز از مدح علی آیه ندارد این صدف جز این دُر گرانمایه ندارد رفتم زیر سایه لطفش بنشینم دیدم علی نور بود سایه ندارد ****** تمام لذت عمر, ...ادامه مطلب

  • جدیدترین مطالب منتشر شده

    گزیده مطالب

    تبلیغات

    برچسب ها