当前位置: 首页 > 面试题库 >

要在比较中使用空参数时,该如何处理PL / SQL存储过程中的空参数?

花永昌
2023-03-14
问题内容

我有一个带有参数的存储过程name,我想在where子句中使用该参数来匹配列的值,即类似

where col1 = name

现在,由于工作方式的原因,这当然不符合null要求。我需要做吗null``null

where ((name is null and col1 is null) or col1 = name)

在这种情况下还是有一种更简洁的方法?


问题答案:

您可以通过decode以下方式使用功能

where decode(col1, name, 0) is not null

从SQL参考中引用:

在DECODE函数中,Oracle认为两个空值是等效的。



 类似资料:
  • 我刚刚意识到,当任何参数为null时,JPQL where子句都不能像我预期的那样工作。例如,这个简单的JPQL查询 当参数为null时不返回任何结果,即使数据库中存在名称设置为null的实体。 在这种情况下,Hibernate使用WHERE实体执行SQL。名称=空。显然,这不是由数据库处理的,因为对于空比较,标准定义为NULL(请参见SQL is NULL and=NULL)。JPQL还有一个

  • 我需要对一个参数为PL/SQL表的过程进行JDBC调用。我正在尝试结构对象。但是我没有做正确的事情。我得到错误: ORA-04043:对象“斯科特”。“对象列表结构”不存在。 以下是代码片段: 参数“?”对于本程序,类型为: 我们非常感谢任何能让我们成功的见解谢谢

  • 如何设置参数< code>@p_ItemShelfList [file]。[udtt _ ItemShelfPair]READONLY 与 当我尝试时,我得到一个 操作数类型冲突:nvarchar与udtt_ItemShelfPair不兼容 连接类

  • 问题内容: 我正在使用JPA,hibernate3。 当没有空值或空值时,此查询就像一个超级按钮。但是 traceEntityVO.getLotNumber(),traceEntityVO.getMfrLocId(),traceEntityVO.getExpDate()的 值可能为null或为空 。 在这种情况下,将针对变量而不是 null 条件来检查值’null’或’‘ 。当我不确定参数值是否为

  • 我正在开发一个框架,其中我是一个使用动态创建的参数调用存储过程。我正在运行时构建参数集合。 当我将参数传递给存储过程时,会出现此问题,但存储过程不接受此类参数。 例如,我的存储过程是: 调用存储过程: 这会引发以下错误: 这在 Sybase ASE 中工作正常,它只是忽略任何其他参数。这可以通过MSSQL服务器2008实现吗?任何帮助,非常感谢。谢谢

  • 问题内容: 我已经编写了一个VBScript函数来调用存储过程。过去,我编写了许多函数,这些函数使用输入参数调用存储过程,但是在这种情况下,我需要使用Output参数。 在另一个应用程序中,我使用实体框架调用完全相同的存储过程,因此该存储过程很好。 这是我的代码: adParamInput, 50, userId)) cmd.Parameters.Append(cmd.CreateParamete