检查游标列中的Null值

时间:2014-12-03 15:47:30

标签: oracle stored-procedures cursor

如何检查特定列中的空值,以查找从游标

返回的行集
   CURSOR c_vej IS
    select stednavn,vejnavn,postnr from rki.vejmednavn where navn=vejnavn and postnr=postnr and         type='C';
 c_vej123 c_vej%ROWTYPE;  
 BEGIN

 OPEN c_vej;
 LOOP
 fetch c_vej into c_vej123; 

stednavn,vejnavn,postnr作为输入传递给程序

create or replace
PROCEDURE "VEJ_CHECK" (


vejnavn   IN VARCHAR2,
postnr    IN number,
stednavn  IN out varchar2)
is



CURSOR c_vej IS
     select stednavn,vejnavn,postnr from rki.vejmednavn where navn=vejnavn and postnr=postnr and         type='C';
     c_vej123 c_vej%ROWTYPE;  
     BEGIN

     OPEN c_vej;
     LOOP
     fetch c_vej into c_vej123; 
     EXIT WHEN c_Vej%NOTFOUND;
         DBMS_OUTPUT.PUT_LINE('-- Employee: ');

    end loop;
    close C_VEJ;

结束VEJ_CHECK;

{POSTNR,NAVN,STEDNAVN} = {9240,Louisendalvej,Skørbæk},{9240,Louisendalvej,NULL},{9240,Louisendalvej,Ejdrup}

{POSTNR,NAVN,STEDNAVN} = {7752,Hørstedvej,Harring},{7752,Hørstedvej,Sønderhå},{7752,Hørstedvej,Hørsted}

列名称为Postnr,navn,stednavn,之后列出相应的值

在这种情况下,c_vej(Cursor)可能会返回stednavn为null或不为null的行。如果从此游标返回的任何行的值为stednavn为null。我希望从过程返回null并且如果是游标返回一行或两行,stednavn为非null,在这种情况下,总是返回第一行stednavn值。

如果游标返回上面的第一个表,那么应该从过程返回NULL,如果游标返回第二个表,那么应该返回Harring。

我如何在Oracle中编写相同的代码?

0 个答案:

没有答案