نکته ای در مورد مقدار null در اسکریپت ها

اجرای دو اسکرییت زیر نشان می دهد که (1,null) با (1,null) برابر نیست اما (1و0) با (1و0) برابر است. 

  

select 1 from dual where (1,0) in ( select 1, 0 from dual) 

select 1 from dual where (1,null) in ( select 1, null from dual)

دستورهایData Manipulation Language در sql

دستورهای  DML در Sql شامل دستورات insert، delete و update می باشد. این دستورها در بلاک های pl/sql  نیز مستقیماً پشتیبانی می شوند.

cursor در pl/sql

یکی از block های pl/sql نامش cursor می باشد. 

cursor مدل توسعه یافته ی دستور Select into می باشد که می تواند یک یا بیش از یک رکورد را به داخل block ما بفرستد. 

همچنین کرسر از نظر ساختاری فضایی از حافظه بوده که همانند یک متغیر محلی در ناحیه Decleration تعریف می شود. کرسر مقادیرش را از دیتابیس fetch کرده و در اختیار بلاک pl/sql قرار می دهد.

دستور select into در pl/sql

در pl/sql دستوری به نام select into وجود دارد که به صورت زیر نوشته می شود: 

select  اسم ستون یا ستون ها  into متغیر یا متغیرها from نام جدول 

دستور select into در pl/sql به عنوان اشاره گری است که وظیقه دارد یک رکورد را از دیتابیس fetch کند و آن را به داخل package ما بفرستند در صورتیکه دستور Select در sql می توانست تعداد زیادی رکورد را برگرداند. همچنین اگر دستور select into رکوردی برای fetch کردن نیابد Exception می دهد در صورتی که دستور Select  اگر رکوردی هم پیدا نمی کرد Exception نمی داد.

Block هایpl/sql

در pl/sql کلاً 5 نوع block وجود دارد که عبارتند از: 

  • trigger، package، function، procedure که می توان این 4 نوع بلاک را ذخیره کرد. 
  • بلاک بی نام یا Anonymous Block که نمی توان آن را ذخیره کرد.