`

oracle中的''和null

阅读更多
 declare
 v_new varchar2(20) := '';
 cursor c_test is select distinct no from test where dno is not null;
 v_test c_test%rowtype;
begin
 open c_test;
 loop
  fetch c_test into v_test;
  --根据dno查新的dno
  begin
   select new_dno into v_new from test2 where old_dno = v_test.dno;
  exception
   when no_data_found then
    v_new := '';
  end;
  
  if v_new <> '' then 
   update test set dno = v_new where dno = v_test.dno;
  end if;
 end loop;
 close c_test;
end;

上面的代码进不了update语句。

最后发现是''在作怪。在oracle中''和null是一样的。

null不能和任何值比较。这样自然就进不了update语句了。

所以最后改成下面的就OK了。

 

declare
 v_new varchar2(20) := null;
 cursor c_test is select distinct no from test where dno is not null;
 v_test c_test%rowtype;
begin
 open c_test;
 loop
  fetch c_test into v_test;
  --根据dno查新的dno
  begin
   select new_dno into v_new from test2 where old_dno = v_test.dno;
  exception
   when no_data_found then
    v_new := null;
  end;
  
  if v_new is not null then 
   update test set dno = v_new where dno = v_test.dno;
  end if;
 end loop;
 close c_test;
end;




 

分享到:
评论

相关推荐

    oracle中对null值的处理

    在Oracle数据库中,NULL值是一种特殊的值,表示未知或不存在的数据。它不同于任何其他值,包括空字符串('')和零。理解Oracle如何处理NULL值是数据库管理与查询中的重要一环,尤其对于数据完整性、查询逻辑以及函数...

    oracle中的null_考试题目

    ### Oracle中的NULL知识点详解 #### 一、NULL基础概念与特性 ...通过以上分析,我们可以看到,在Oracle中正确理解和处理`NULL`是非常重要的,这不仅有助于避免一些常见的错误,还能更有效地利用数据库资源。

    Oracle NULL值的比较函数(是NULL=NULL为真的函数)

    你是否也为在Oracle里如何实现NULL的比较而犯愁呢?

    oraclesql判断值为空-Oracle-sqlserver的空值(null)判断.pdf

    Oracle SQL 判断值为空OrNull 判断 Oracle SQL 中判断值为空...在 Oracle 和 SQL Server 中,我们可以使用 `NVL` 和 `ISNULL` 函数来判断值为空或 Null,並使用 `isNull` 和 `is not null` 来判断值是否为空或 Null。

    Oracle null的使用

    Oracle 中 null 的长度是一些文章上说 null 长度为零(×),其实长度也为 null。Oracle 不存在长度为 0 的字符串。 函数内若有参数为空此时返回为空,但某些除外。函数解析原理,对于度量函数,如果给定的参数为...

    关于Oracle中NULL使用的若干实验研究.pdf

    在Oracle数据库中,NULL是一个特殊的数据类型,用于表示未知或者未赋值的情况。...通过实验和深入研究,我们可以更好地掌握在Oracle环境中如何正确地使用和处理NULL,从而提高数据库应用的稳定性和效率。

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    "解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...

    最全的Oracle中文使用手册

    Oracle是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。Oracle数据库提供了丰富的功能,包括数据存储、查询、事务处理、安全性等。在本文中,我们将深入探讨Oracle的使用,特别是通过...

    oracle11G导出NULL表 和 设置于密码不过期设置

    在Oracle数据库中,NULL表指的是那些没有数据的表,即表中的行数为0。这些表可能由于历史原因存在但实际并不存储任何数据,或者是在某些情况下被清空了所有数据。对于这类表,在进行备份或迁移时,我们通常希望能够...

    null and not null

    null and not null

    oracle中 substring函数的使用

    ### Oracle中的SUBSTR函数详解 在Oracle数据库中,`SUBSTR`函数是一个非常重要的字符串处理函数,用于从指定的字符串中提取子串。该函数在实际应用中极为广泛,能够帮助用户灵活地处理数据,满足各种业务需求。下面...

    如何将数据库中的NUll写入到数据库中去

    虽然SQL标准定义了如何处理NULL,但不同的数据库系统(如MySQL、PostgreSQL、Oracle等)可能有自己的方言,因此在实际操作时要注意这些差异。 总之,将NULL写入数据库涉及到SQL语法、编程语言与数据库API的交互,...

    基于C#连接Oracle数据库Oracle.ManagedDataAccess

    在Visual Studio中,可以通过右键点击解决方案资源管理器中的项目,选择“管理NuGet程序包”,然后在搜索框中输入"Oracle.ManagedDataAccess",找到对应的包并安装。 接下来,我们需要编写代码来建立数据库连接。...

    sqlserver-oracle 数据类型对照

    - `NVL`和`ISNULL`在Oracle和SQL Server中用于处理NULL值。 3. **转换函数**: - `TO_CHAR`和`TO_NUMBER`在Oracle中用于字符到数字和数字到字符的转换。 - `HEX_TO_RAW`和`RAW_TO_HEX`分别在Oracle中进行16进制...

    Oracle常用关键词和函数

    在本文中,我们将深入探讨一些Oracle中常用的关键词和函数。 首先,我们来看NVL()函数,这是一个非常实用的处理空值(NULL)的函数。NVL(a, b)的作用是如果表达式a的值为NULL,则返回b的值,否则返回a的值。这在...

    oracle null使用详解

    在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零

    在oracle中处理日期大全

    在本节中,我们将详细介绍 Oracle 中日期处理的各种方法和函数。 日期和时间格式 在 Oracle 中,日期和时间可以用多种格式表示。如: * `DD`:表示一天中的日期,范围从 01 到 31。 * `DY`:表示一天的缩写形式,...

    oracle约束和索引笔记

    本笔记主要探讨了两个关键概念:约束和索引,这些都是Oracle数据库中的基础但至关重要的元素。 **1. 约束(Constraints)** 约束是Oracle数据库中用于确保数据完整性的规则。它们分为以下几种类型: - **非空约束...

    Oracle数据库中对null值的排序及mull与空字符串的区别

    在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前。所以,为何分析数据的直观性方便性,我们需要对null的记录值进行相应处理。 这是四种oracle排序中...

    C# oracle通用类

    C# oracle 类 事务处理 #region 公有方法 public void JoinTransaction(Transaction transaction) { if (this._transaction != null) { throw new Exception("对象已经在另一个事务中"); } else { this._...

Global site tag (gtag.js) - Google Analytics