Oracle 19c - 如果输入参数为空,如何选择所有的值

10 浏览
0 Comments

Oracle 19c - 如果输入参数为空,如何选择所有的值

我有一个包含可为空参数的查询。如果输入参数为空,则应选择所有值。

以前在Oracle 18c中可以工作,但是现在在oracle 19c中不起作用。

如果表中的数据为空,则不起作用。

有什么原因或方法吗?

我尝试了这个,结果是一样的。

0
0 Comments

在Oracle 19c中,如果输入参数为null时如何选择所有值?

在查询中,可以使用明确的NULL检查来解决这个问题。具体的解决方法是在WHERE子句中使用以下语句:

SELECT NAME, SURNAME
FROM MY_TABLE
WHERE NAME = ? OR ? IS NULL;

之前使用NVL函数的版本停止工作的原因可能是与预编译语句中参数绑定的变化有关。尝试使用NAME = NAME也没有起作用。

Gry提供了一个完美解决这个问题的查询。它在给定姓名时检索与姓名匹配的行,当没有给定姓名时则检索所有行。请尝试并接受这个答案。

0