千家信息网

数据库中的记录类型判断非空的办法是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"数据库中的记录类型判断非空的办法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据库中的记录类型判断非空的办法是什么"吧!我创建了
千家信息网最后更新 2026年11月03日数据库中的记录类型判断非空的办法是什么

本篇内容主要讲解"数据库中的记录类型判断非空的办法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据库中的记录类型判断非空的办法是什么"吧!

我创建了如下的包:

CREATE OR REPLACE PACKAGE plch_pkgIS   TYPE info_rt IS RECORD   (      name   VARCHAR2 (100)    ,  dob    DATE   );   TYPE info_plus_rt IS RECORD   (      group_name    VARCHAR2 (100)    ,  group_total   NUMBER    ,  more_info     info_rt   );END;/

哪些选项在执行后将会显示 "NOT NULL"?

(A)

DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF l_my_record IS NOT NULL   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;/
SQL> DECLARE  2     l_my_record   plch_pkg.info_plus_rt;  3  BEGIN  4     l_my_record.group_name := 'Oracle Bloggers';  5     l_my_record.more_info.dob := SYSDATE;  6    7     IF l_my_record IS NOT NULL  8     THEN  9        DBMS_OUTPUT.put_line ('NOT NULL'); 10     ELSE 11        DBMS_OUTPUT.put_line ('NULL'); 12     END IF; 13  END; 14  /DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF l_my_record IS NOT NULL   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;ORA-06550: 第 7 行, 第 7 列: PLS-00306: 调用 'IS NOT NULL' 时参数个数或类型错误ORA-06550: 第 7 行, 第 4 列: PL/SQL: Statement ignoredSQL>

(B)

DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF    l_my_record.group_name IS NOT NULL      OR l_my_record.group_total IS NOT NULL      OR l_my_record.more_info IS NOT NULL   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;/
SQL> DECLARE  2     l_my_record   plch_pkg.info_plus_rt;  3  BEGIN  4     l_my_record.group_name := 'Oracle Bloggers';  5     l_my_record.more_info.dob := SYSDATE;  6    7     IF    l_my_record.group_name IS NOT NULL  8        OR l_my_record.group_total IS NOT NULL  9        OR l_my_record.more_info IS NOT NULL 10     THEN 11        DBMS_OUTPUT.put_line ('NOT NULL'); 12     ELSE 13        DBMS_OUTPUT.put_line ('NULL'); 14     END IF; 15  END; 16  /DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF    l_my_record.group_name IS NOT NULL      OR l_my_record.group_total IS NOT NULL      OR l_my_record.more_info IS NOT NULL   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;ORA-06550: 第 9 行, 第 10 列: PLS-00306: 调用 'IS NOT NULL' 时参数个数或类型错误ORA-06550: 第 7 行, 第 4 列: PL/SQL: Statement ignoredSQL>

(C)

DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF    l_my_record.group_name IS NOT NULL      OR l_my_record.group_total IS NOT NULL      OR l_my_record.more_info.name IS NOT NULL      OR l_my_record.more_info.dob IS NOT NULL   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;/
SQL> DECLARE  2     l_my_record   plch_pkg.info_plus_rt;  3  BEGIN  4     l_my_record.group_name := 'Oracle Bloggers';  5     l_my_record.more_info.dob := SYSDATE;  6    7     IF    l_my_record.group_name IS NOT NULL  8        OR l_my_record.group_total IS NOT NULL  9        OR l_my_record.more_info.name IS NOT NULL 10        OR l_my_record.more_info.dob IS NOT NULL 11     THEN 12        DBMS_OUTPUT.put_line ('NOT NULL'); 13     ELSE 14        DBMS_OUTPUT.put_line ('NULL'); 15     END IF; 16  END; 17  /NOT NULLPL/SQL procedure successfully completedSQL>

(D)

CREATE OR REPLACE FUNCTION plch_not_null_rec (rec_in IN plch_pkg.info_plus_rt)   RETURN BOOLEANISBEGIN   RETURN    rec_in.group_name IS NOT NULL          OR rec_in.group_total IS NOT NULL          OR rec_in.more_info.name IS NOT NULL          OR rec_in.more_info.dob IS NOT NULL;END;/DECLARE   l_my_record   plch_pkg.info_plus_rt;BEGIN   l_my_record.group_name := 'Oracle Bloggers';   l_my_record.more_info.dob := SYSDATE;   IF plch_not_null_rec (l_my_record)   THEN      DBMS_OUTPUT.put_line ('NOT NULL');   ELSE      DBMS_OUTPUT.put_line ('NULL');   END IF;END;/
SQL> CREATE OR REPLACE FUNCTION plch_not_null_rec (rec_in IN plch_pkg.info_plus_rt)  2     RETURN BOOLEAN  3  IS  4  BEGIN  5     RETURN    rec_in.group_name IS NOT NULL  6            OR rec_in.group_total IS NOT NULL  7            OR rec_in.more_info.name IS NOT NULL  8            OR rec_in.more_info.dob IS NOT NULL;  9  END; 10  /Function createdSQL> DECLARE  2     l_my_record   plch_pkg.info_plus_rt;  3  BEGIN  4     l_my_record.group_name := 'Oracle Bloggers';  5     l_my_record.more_info.dob := SYSDATE;  6    7     IF plch_not_null_rec (l_my_record)  8     THEN  9        DBMS_OUTPUT.put_line ('NOT NULL'); 10     ELSE 11        DBMS_OUTPUT.put_line ('NULL'); 12     END IF; 13  END; 14  /NOT NULLPL/SQL procedure successfully completedSQL>
答案 CD对记录类型不能使用IS NOT NULL判断,否则会出现:PLS-00306: wrong number or types of arguments in call to 'IS NOT NULL'这导致AB出现异常。Steven Feuerstein建议你采用D的做法以便于重用代码。

到此,相信大家对"数据库中的记录类型判断非空的办法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

类型 办法 数据 数据库 个数 内容 参数 错误 学习 实用 更深 代码 做法 兴趣 实用性 实际 建议 操作简单 方法 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 互联网电商科技 互联网络科技有限公司 时间互联网络科技 伴你行互联网科技有限公司 猫创互联网科技 深圳市运趣互联网科技有限公司 随着互联网科技发展 金融科技与互联网金融相同和不同 世界互联网科技公司市值排名 厦门千工互联网科技有限公司 中国航天科技大学国际工业互联网 工业互联网展湾科技股份有限公司 华中科技大学互联网的牛人 互联网科技圈年度人物 互联网方面的科技前沿 小米互联网科技园入驻 银行科技岗属于互联网吗 互联网科技企业商标注意事项 绵阳真晨互联网科技有限公司 蓝思科技飞鸽互联网 苏州找大状互联网科技有限公司 互联网科技视频 远拓互联网科技 互联网 视角下的科技创新 上海卓越科技 互联网 常德市电业局互联网科技部 互联网软件和科技 宝灵互联网科技有限公司 小牛互联网科技有限公司地址
0