加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ORA-01400:无法将NULL插入 ORA-01403:未找到任何数据

(2014-11-19 10:57:44)
标签:

it

oracle

分类: Oracle_Database
ORA-01400:无法将NULL插入 ORA-01403:未找到任何数据
这是因为select into 的时候返回0行记录导致,可以使用以下方法强制返回1行记录并赋值为0或指定其他值
例如:
select t.name into  l_name from tab1 t where 1 <> 1;
上面sql会提示不允许将空值插入或未找到任何数据
处理方法:
SELECT tab.name
  INTO l_name
  FROM (SELECT t.name NAME
               FROM tab1 t
              WHERE 1 <> 1
              UNION ALL
              SELECT COUNT(*) --此处COUNT(*)可以置换为任何自己想要的其他值。
               FROM tab1 t
              WHERE 1 <> 1
             HAVING COUNT(*) < 1) tab;

再如一下一个sql块例子:
DECLARE
  l_seg1 VARCHAR2(50);
BEGIN
  SELECT tab.seg1
    INTO l_seg1
    FROM (SELECT t.seg1 seg1
            FROM cux_seg_tbl t
           WHERE 1 <> 1
          UNION ALL
          SELECT 'Y'
            FROM cux_seg_tbl t
           WHERE 1 <> 1
          HAVING COUNT(*) < 1) tab;
  dbms_output.put_line(l_seg1);--输出的是Y
END;



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有