在Oracle 19c中,如果输入参数为null时如何选择所有值?
在查询中,可以使用明确的NULL检查来解决这个问题。具体的解决方法是在WHERE子句中使用以下语句:
SELECT NAME, SURNAME
FROM MY_TABLE
WHERE NAME = ? OR ? IS NULL;
之前使用NVL函数的版本停止工作的原因可能是与预编译语句中参数绑定的变化有关。尝试使用NAME = NAME也没有起作用。
Gry提供了一个完美解决这个问题的查询。它在给定姓名时检索与姓名匹配的行,当没有给定姓名时则检索所有行。请尝试并接受这个答案。