ITPub博客

首页 > 数据库 > Oracle > 2011-11-10 CLOB为空的判断

2011-11-10 CLOB为空的判断

Oracle 作者:hanaka 时间:2019-12-17 00:12:42 0 删除 编辑

http://www.itpub.net/thread-1499223-13-1.html

129楼


下列的哪些选项在执行之后会显示 "CLOB has a length of 0" ?

(A)

DECLARE
   l_clob   CLOB;
BEGIN
   IF l_clob IS NULL
   THEN
      DBMS_OUTPUT.put_line ('CLOB is NULL');
   ELSE
      DBMS_OUTPUT.put_line ('CLOB has a length of '
                             || LENGTH (l_clob));
   END IF;
END;
/
SQL> DECLARE
  2     l_clob   CLOB;
  3  BEGIN
  4     IF l_clob IS NULL
  5     THEN
  6        DBMS_OUTPUT.put_line ('CLOB is NULL');
  7     ELSE
  8        DBMS_OUTPUT.put_line ('CLOB has a length of '
  9                               || LENGTH (l_clob));
 10     END IF;
 11  END;
 12  /
CLOB is NULL
PL/SQL procedure successfully completed
SQL>

(B)

DECLARE
   l_clob   CLOB := EMPTY_CLOB ();
BEGIN
   IF l_clob IS NULL
   THEN
      DBMS_OUTPUT.put_line ('CLOB is NULL');
   ELSE
      DBMS_OUTPUT.put_line ('CLOB has a length of '
                             || LENGTH (l_clob));
   END IF;
END;
/
SQL> DECLARE
  2     l_clob   CLOB := EMPTY_CLOB ();
  3  BEGIN
  4     IF l_clob IS NULL
  5     THEN
  6        DBMS_OUTPUT.put_line ('CLOB is NULL');
  7     ELSE
  8        DBMS_OUTPUT.put_line ('CLOB has a length of '
  9                               || LENGTH (l_clob));
 10     END IF;
 11  END;
 12  /
CLOB has a length of 0
PL/SQL procedure successfully completed
SQL>

(C)

DECLARE
   l_clob   CLOB := '';
BEGIN
   IF l_clob IS NULL
   THEN
      DBMS_OUTPUT.put_line ('CLOB is NULL');
   ELSE
      DBMS_OUTPUT.put_line ('CLOB has a length of '
                             || LENGTH (l_clob));
   END IF;
END;
/
SQL> DECLARE
  2     l_clob   CLOB := '';
  3  BEGIN
  4     IF l_clob IS NULL
  5     THEN
  6        DBMS_OUTPUT.put_line ('CLOB is NULL');
  7     ELSE
  8        DBMS_OUTPUT.put_line ('CLOB has a length of '
  9                               || LENGTH (l_clob));
 10     END IF;
 11  END;
 12  /
CLOB is NULL
PL/SQL procedure successfully completed
SQL>

(D)

DECLARE
   l_clob1   CLOB := EMPTY_CLOB ();
   l_clob2   CLOB := l_clob1;
BEGIN
   IF l_clob2 IS NULL
   THEN
      DBMS_OUTPUT.put_line ('CLOB is NULL');
   ELSE
      DBMS_OUTPUT.put_line ('CLOB has a length of '
                             || LENGTH (l_clob2));
   END IF;
END;
/
SQL> DECLARE
  2     l_clob1   CLOB := EMPTY_CLOB ();
  3     l_clob2   CLOB := l_clob1;
  4  BEGIN
  5     IF l_clob2 IS NULL
  6     THEN
  7        DBMS_OUTPUT.put_line ('CLOB is NULL');
  8     ELSE
  9        DBMS_OUTPUT.put_line ('CLOB has a length of '
 10                               || LENGTH (l_clob2));
 11     END IF;
 12  END;
 13  /
CLOB has a length of 0
PL/SQL procedure successfully completed
SQL>


答案在134楼

11-10 答案BD. 注意答案C里面的 '' 相当于NULL.


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/680385/viewspace-2668897/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-15

  • 博文量
    47
  • 访问量
    29232