2009-12-31 23 views
19

में शून्य है, तो मैं जांचना चाहता हूं कि कोई चर शून्य है या नहीं। यदि यह शून्य है, तो मैं उस चर को मान सेट करना चाहता हूं:जांचें कि कोई चर plsql

//data type of var is number 
if Var = null then 
    var :=5; 
endif 

लेकिन मुझे इसमें त्रुटि मिल रही है। मैं कैसे जांच सकता हूं कि कोई चर शून्य है या नहीं?

मैं ओरेकल डेटा प्रकार का उपयोग कर रहा

उत्तर

2

उपयोग करता है, तो वर रिक्त है

17

उपयोग:

IF Var IS NULL THEN 
    var := 5; 
ENDIF; 

ओरेकल 9i +:

var = COALESCE(Var, 5) 

अन्य विकल्प:

var = NVL(var, 5) 

संदर्भ:

2

हमेशा के रूप में अशक्त, कभी नहीं अधिक से अधिक छोटे, बराबर या कुछ भी करने के लिए असमान है PL/SQL सशर्त खंड में nulls के साथ सावधान रहना करने के लिए याद है। उनसे बचने का सबसे अच्छा तरीका nvl का उपयोग करना है।

उदाहरण

declare 
    i integer; 
begin 
    if i <> 1 then 
    i:=1; 
    foobar(); 
    end if; 
end; 
/

के लिए कभी नहीं करता है, तो खंड के अंदर चला जाता है।

ये काम करेंगे।

if 1<>nvl(i,1) then 
if i<> 1 or i is null then 
2

एक और तरीका है:

var := coalesce (var, 5); 

COALESCE एएनएसआई समकक्ष (कम या ज्यादा) Oracle की NVL समारोह की है।

11

PL/SQL में आप इस तरह के '=' या '<>' के रूप में ऑपरेटरों का उपयोग नहीं कर सकते क्योंकि सभी तुलना NULL वापसी NULL को NULL के लिए परीक्षण करने के लिए। NULL के खिलाफ कुछ की तुलना करने के लिए आपको विशेष ऑपरेटर IS NULL या IS NOT NULL का उपयोग करने की आवश्यकता है जो इस उद्देश्य के लिए हैं।इस प्रकार, बजाय

IF var = NULL THEN... 

लिखने की आप

IF VAR IS NULL THEN... 

लिखना चाहिए मामला क्या आप भी NVL में निर्मित समारोह का उपयोग करने का विकल्प होता है दे दिया है में। NVL दो तर्क लेता है, पहला एक चर होता है और दूसरा एक मान (स्थिर या गणना) होता है। NVL अपने पहले तर्क को देखता है और, यदि यह पाया जाता है कि पहला तर्क NULL है, तो दूसरा तर्क देता है। यदि NVL पर पहला तर्क NULL नहीं है, तो पहला तर्क वापस कर दिया गया है। तो अगर आप को फिर से लिखने सकता

IF var IS NULL THEN 
    var := 5; 
END IF; 

रूप

var := NVL(var, 5); 

मुझे आशा है कि इस मदद करता है।

+2

मैंने आपको यह बताने के लिए 5 साल का इंतजार किया, लेकिन आपके उत्तर के लिए धन्यवाद। –

संबंधित मुद्दे