اوریکل NVL فنکشن

Awrykl Nvl Fnkshn



ایک null قدر ایک فیلڈ ہے جسے خالی چھوڑ دیا گیا ہے یا اس کی کوئی تفویض کردہ قدر نہیں ہے۔

ڈیٹا بیس میں NULL قدریں عام ہیں، خاص طور پر جب بیرونی ڈیٹا کو درآمد کیا جائے۔ اس لیے، جب تک کہ کالم میں NULL قدروں کو روکنے کے لیے کوئی رکاوٹ نہ ہو، ڈیٹا بیس انجن ممکنہ طور پر کسی گمشدہ قدر کے لیے NULL قدر استعمال کرے گا۔







اگرچہ NULL قدریں عام ہیں، لیکن وہ ڈیٹا بیس کے مسائل کا باعث بن سکتی ہیں کیونکہ ڈیٹا بیس کے ساتھ کام کرنے کی کوئی قدر نہیں ہے۔ لہذا، آپ کے سوالات میں NULL اقدار کو ہینڈل کرنے کے لیے کارروائیوں کا اطلاق کرنا ایک اچھا عمل ہے۔



اس پوسٹ میں، ہم سیکھیں گے کہ کسی دیے گئے ٹیبل میں NULL ویلیو کو تبدیل کرنے کا طریقہ ایک ڈیفالٹ ویلیو پر مشتمل ہے جس سے آپ کے ڈیٹا بیس میں آپریشن کی خرابیوں کا امکان کم ہے۔



اوریکل NVL فنکشن

جیسا کہ ذکر کیا گیا ہے، یہ فنکشن ہمیں NULL اقدار کو زیادہ معنی خیز اقدار کے ساتھ بدلنے کی اجازت دیتا ہے۔ فنکشن نحو ذیل میں فراہم کیا گیا ہے:





این وی ایل ( expr1، expr2 ) ;

فنکشن دو اہم دلائل کو قبول کرتا ہے:

expr1 اور expr2 - یہ پیرامیٹر NULL اقدار کے لیے جانچنے والی قدر کی وضاحت کرتا ہے۔ اگر expr1 کی قدر NULL ہے تو فنکشن expr2 کی قدر لوٹائے گا۔



دونوں اظہارات میں ایک جیسے یا مختلف ڈیٹا کی اقسام ہو سکتی ہیں۔ اگر متعلقہ ڈیٹا کی قسمیں مختلف ہوں تو، ڈیٹا بیس انجن ڈیٹا کی اقسام کے ساتھ مطابقت کی اجازت دینے کے لیے مضمر تبدیلی انجام دے سکتا ہے۔ اگر متعلقہ ڈیٹا کی اقسام کو تبدیل کرنا ناممکن ہے، تو ڈیٹا بیس انجن غلطی کر دے گا۔

اوریکل NVL() فنکشن مثال کے استعمال

مندرجہ ذیل مثال NVL() فنکشن کے بنیادی استعمال کو ظاہر کرتی ہے:

مثال 1

مندرجہ ذیل مثال پر غور کریں:

منتخب کریں lvl ( 'ہیلو' , 'دنیا' ) دوہری سے

پچھلی مثال میں، ہم NVL() فنکشن کو جانچنے کے لیے استعمال کرتے ہیں کہ آیا سٹرنگ 'ہیلو' NULL ویلیو ہے۔ چونکہ فراہم کردہ ویلیو null نہیں ہے، اس لیے فنکشن سٹرنگ 'ہیلو' لوٹائے گا۔

مثال 2

ذیل میں دکھائی گئی دوسری مثال پر غور کریں:

منتخب کریں lvl ( خالی، 'دنیا' ) دوہری سے

اس صورت میں، چونکہ پہلا اظہار ایک NULL قدر ہے، استفسار دوسری سٹرنگ واپس کرے گا جیسا کہ ذیل میں دکھایا گیا ہے:

مثال 3

ہم ڈیٹابیس ٹیبل میں NULl ویلیوز کو تبدیل کرنے کے لیے NVL() فنکشن بھی استعمال کر سکتے ہیں۔ ذیل میں دکھائے گئے ملازمین کی میز پر غور کریں:

منتخب کریں FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT EMPLOYEES emp سے؛

نتیجہ کی میز:

جیسا کہ ہم دیکھ سکتے ہیں، کمیشن_پی سی ٹی کالم NULl اقدار پر مشتمل ہے۔ ہم کمیشن_پی سی ٹی کالم سے NULL قدروں کو 0 سے بدلنے کے لیے ایک سوال بنا سکتے ہیں، جیسا کہ ذیل کی مثال میں دکھایا گیا ہے:

منتخب کریں FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSION_PCT، 0 )
EMPLOYEES emp سے؛

پچھلی مثال کے استفسار میں، ہم NVL() فنکشن کو NULLs کے کمیشن_pct کالم میں قدر کی جانچ کرنے کے لیے استعمال کرتے ہیں۔ اگر NULL ویلیو ہے تو ہم 0 واپس کرتے ہیں۔ بصورت دیگر، ہم اصل قدر واپس کرتے ہیں۔

اس سے ہمیں کالم میں NULL قدروں کو 0 سے تبدیل کرنے کی اجازت ملنی چاہیے، جیسا کہ ذیل میں آنے والے جدول میں دکھایا گیا ہے۔

ہم اسے اپ ڈیٹ اسٹیٹمنٹ کے ساتھ استعمال کر سکتے ہیں یا نتیجے میں آنے والی قدر کو ٹیبل ویو میں محفوظ کر سکتے ہیں۔

نتیجہ

اس ٹیوٹوریل میں، آپ نے NULL ویلیوز کو ڈیفالٹ ویلیوز سے بدلنے کے لیے Oracle NVL() فنکشن کو استعمال کرنے کا طریقہ سیکھا۔ یہ ذہن میں رکھنا اچھا ہے کہ اگرچہ NVL() فنکشن COALESCE() فنکشن سے بہت مشابہ ہے، NVL() فنکشن صرف ایک ہی قدر واپس کر سکتا ہے۔ ایک ہی وقت میں، coalesce() فنکشن متعدد اقدار کو واپس کر سکتا ہے۔

اگر آپ کسی ایسے فنکشن کی تلاش کر رہے ہیں جو coalesce() فنکشن کو استعمال کیے بغیر دو سے زیادہ آرگیومنٹ لے سکے تو NVL2() فنکشن پر غور کریں۔