gpt4 book ai didi

sql - Oracle SQL*Plus 接受语句

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:55 24 4
gpt4 key购买 nike

我的 SQL*Plus 脚本需要一些帮助。有什么方法可以让它接受一个变量,检查表中的匹配项,如果找到匹配项,则退出程序并且不再继续其余的接受语句?

到目前为止我有这段代码:

ACCEPT p_cname PROMPT 'Enter Customer Name: '
DECLARE
v_cname CHAR(20);
BEGIN
SELECT cname INTO v_cname
FROM customer
WHERE cname = '&p_cname';

IF v_name = '&p_cname' THEN
-- Exit the program
END IF;
END;
/

-- Other ACCEPT statements if a match was not found.

如果找到匹配项,我不希望它继续程序的其余部分。有什么办法吗?

最佳答案

您可以通过启用错误检查然后引发错误来实现。

ACCEPT p_cname PROMPT 'Enter Customer Name: '

WHENEVER SQLERROR EXIT SUCCESS ROLLBACK;

DECLARE
v_count INTEGER;
BEGIN
SELECT COUNT(*) INTO v_count
FROM customer
WHERE cname = '&p_cname';

IF v_count > 0 THEN
raise_application_error( -20100, 'Customer already exists' );
END IF;

END;
/

-- Issue a new WHENEVER statement here if you want different error-handling for
-- the rest of the script

-- Other ACCEPT statements if a match was not found.

WHENEVER 命令中,SUCCESS 关键字表示SQLPlus 将向调用它的shell 返回一个成功代码。您还可以使用 FAILURE 返回通用失败代码,或使用其他选项返回特定值。

关于sql - Oracle SQL*Plus 接受语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868770/

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