gpt4 book ai didi

oracle - 存储过程 PL SQL 如果字符串为空

转载 作者:行者123 更新时间:2023-12-01 07:13:06 25 4
gpt4 key购买 nike

我在使用 Oracle 存储过程时遇到了问题。 if else语句没有检查字符串是否为空。还是我做错了?

create or replace PROCEDURE GET_ICECREAM
(
flavour IN VARCHAR2,
toppings IN VARCHAR2,
cursorIC OUT sys_refcursor
)
AS

dynaQuery VARCHAR2(8000);

BEGIN

dynaQuery := 'SELECT price FROM tblIceCream';

IF flavour <> '' THEN

dynaQuery := dynaQuery || ' WHERE flavour LIKE '''%''' '

ENDIF



OPEN cursorIC FOR dynaQuery;

END GET_ICECREAM;

免责声明:以上不是实际的存储过程。我正在使用一个示例来理解 Oracle 中 if else 和 native 动态 SQL 的概念。这样你们更容易理解;)

最佳答案

希望下面的代码片段能帮助您了解如何处理空字符串和 NULL 值。

SET serveroutput ON;
DECLARE
lv_var VARCHAR2(100):='';
BEGIN
IF lv_var IS NULL THEN
dbms_output.put_line('is null');
ELSE
dbms_output.put_line('av');
END IF;
END;

------------------------------------OUTPUT--------------------------------------

PL/SQL procedure successfully completed.

is null

--------------------------------------------------------------------------------

SET serveroutput ON;
DECLARE
lv_var VARCHAR2(100):='';
BEGIN
IF lv_var = '' THEN
dbms_output.put_line('is null');
ELSE
dbms_output.put_line('av');
END IF;
END;

--------------------------------------output-----------------------------------
PL/SQL procedure successfully completed.

av

--------------------------------------------------------------------------------

关于oracle - 存储过程 PL SQL 如果字符串为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com