Oracle中对空字符串的判断
目录
1.在Oracle中,将长度为零的字符值视为NULL
2.在PL/SQL中判断空字符串
- 2.1 使用nvl函数空值处理
- 2.2 使用is not null改写
写在最前面:在Oracle 11g中一个空字符串和零个字符是没有区别的。今天在使用Oracle编写PL/SQL程序的时候,发现一个问题,我的表中本身不是空字符串,但是在使用if语句判断(字段 <> ‘’)的时候,if语句竟然不会生效,很是纳闷!后来查询相关资料发现:Oracle建议您不要将空字符串视为空字符串那么具体是怎么回事呢?
1.在Oracle中,将长度为零的字符值视为NULL
以下是一个测试案例,测试Oracle中空字符串与null都被视为null
create table test1(id number, str varchar2(20));
insert into test1 values(1, 'like ''04''');
insert into test1 values(2, 'aa');
insert into test1 values(3, '');
insert into test1 values(4, null);
commit;
-- 查询语句
select nvl(str, '我是空值') as res from test1;
查询结果如下:
从查询结果可以看出,在oracle中,null与空字符串一样。
2.在PL/SQL中判断空字符串
直接使用test1表中的列值与空字符串进行判断
declare
t_sql varchar2(100);
beginselect str into t_sql from test1 where id = 1;if t_sql <> '' thendbms_output.put_linse('success!');end if;
end;
按照常规逻辑来说,是会打印success的,但是上述PL/SQL块却没有打印结果,表明if语句并没有生效
2.1 使用nvl函数空值处理
正确的写法
declare
t_sql varchar2(100);
beginselect str into t_sql from test1 where id = 1;if nvl(t_sql, 'N') <> 'N' thendbms_output.put_line('success!');end if;
end;
打印结果:
2.2 使用is not null改写
declare
t_sql varchar2(100);
beginselect str into t_sql from test1 where id = 1;if t_sql is not null thendbms_output.put_line('success!');end if;
end;
Oracle中对空字符串的判断相关推荐
- hive 判断子字符串_Java中检查空字符串(null或空白)的方法有几种?
说明: 本文为牛旦教育原创,头条首发,转发须注明来源和原文网址. 1.摘要 在本文中,我们将介绍些方法检查Java中的空字符串(空的或空白符串).我们有些语言的原生方法以及几个库可用. 2.空与空白( ...
- html判断字段不为空,js里是否为空字符串的判断
了解下js里是否为空字符串的判断. JavaScript中可以使用if(typeof obj=="undefined"||obj==null||obj=="") ...
- JavaScript - 移除数组中的空字符串元素
移除数组中的空字符串元素 使用 filter 方法对数组进行拷贝,删除空字符串元素,保留其他元素(第 22 ~ 24 行): <!DOCTYPE html> <html>< ...
- 使用C#删除一个字符串数组中的空字符串
C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化.以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤.C#3. ...
- oracle 截取 tr,oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)...
(1)oracle中实现截取字符串:substr substr(string, start_position, [length]) 其中,string是元字符串,start_position为开始位置 ...
- 在 Java 中检查空字符串或空白字符串
1. 简介 在本教程中,我们将讨论一些在 Java 中检查空字符串或空白字符串的方法.有一些母语方法,以及几个库. 2. 空与空白 当然,知道字符串何时为空或空白是很常见的,但让我们确保我们的定义在同 ...
- oracle表里面空值要填满,漫 谈oracle 中 的 空 值(转)
漫 谈oracle 中 的 空 值 河 北 省 统 计 局 贾 书 民 ---- 在 数 据 库 中, 空 值 用 来 表 示 实 际 值 未 知 或 无 意 义 的 情 况. 在 一 个 表 中, ...
- oracle中查找指定字符串位置
oracle中查找指定字符串的位置,instr函数笔记: 1,instr(x,y); x:源字符串 y:目标字符串 select instr('abcdefgxyzaa','a') position ...
- Python去除list中的空字符串
方法一: a = ['\n ', '1', ' ','Tuesday, May 05, 2020','\n'] 我们需要将这个列表,中间有'\n ', ' ','\n',这些都是我们不需要的,需要将其 ...
最新文章
- android 多个应用,Android中一个应用实现多个图标的几种方式
- linux设备驱动学习(一)——简单的helloworld模块
- oracle 存储过程写文件,Oracle写本地文件
- wget for windows
- 大数据分析必须要会的python函数操作!!!
- 第8章 函数探索
- mysql,oracle,sql server数据库默认的端口号,端口号可以为负数吗?
- mysql 6位随机数_MySQL生成固定位数的随机数
- Android opencv 检测屏幕是否有坏点/检测一个颜色是否有杂点
- CSS设置div水平垂直居中
- 超声波模块测距 Arduino代码
- 艾宾浩斯遗忘曲线复习计划表
- NMS非极大值抑制的原理
- 利用JavaScript制作倒计时牌(转)
- linux服务器抓包实例
- 利用Poi-tl将富文本Html转换为Word文件
- 尺寸仅为2.7mm 智芯传感ZXP0120ADB型压力传感器在可穿戴设备中大放异彩
- 核心概念 —— 契约(Contracts)
- Android NFC一般使用方法
- 随身wifi与宽带的区别是什么?
热门文章
- 类脑神经网络(1)——神经系统与内分泌的关系
- Python 【微信视频号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
- 安装SPARK 环境变量设置
- 多迪技术总监揭秘:Java入门最佳学习路径几个阶段?
- The Suspects浅析
- 1 + “X“ 网络系统 建设与运维(中级)
- 配置yum源(removing mirrorlist with no valid mirrors Cannot find a valid baseurl for repo)
- paddlehub人像抠图+PIL图像处理
- 时间序列分析六:截面数据和时序数据结合的多变量时序分析
- Navicat for MySQL 使用教程