检查 ID Exist 并删除 PL SQL 中的记录

皮肤

我要做的是,每当STORE_CODE输入a 时,它都会检查数据库并删除商店代码。所以为此,我写了一个程序,如下所示

PROCEDURE DELETE_STORE_INFO
(
  P_STORE_CODE IN NVARCHAR2
)

  AS

    BEGIN

    UPDATE TBL_RRSOC_STORE_INFO set ISACTIVE = 'N' where STORE_CODE = P_STORE_CODE;

    END DELETE_STORE_INFO;

但这里缺少的是

如果用户输入错误store_code并执行操作,那么它将执行什么操作。如何检查那部分?

我想COUNT在这个阶段有些东西是行不通的。请建议

MT0

您想用它SQL%ROWCOUNT来查明有多少行受到前一条 SQL 语句的影响:

PROCEDURE DELETE_STORE_INFO
(
  P_STORE_CODE IN NVARCHAR2
)
AS
BEGIN
  UPDATE TBL_RRSOC_STORE_INFO
  SET    ISACTIVE   = 'N'
  WHERE  STORE_CODE = P_STORE_CODE;

  IF SQL%ROWCOUNT = 0 THEN
    -- DBMS_OUTPUT.PUT_LINE( 'Store code does not exist.' );
    RAISE_APPLICATION_ERROR( -20000, 'Store code does not exist.' );
  END IF;
END DELETE_STORE_INFO;
/

您可以使用DBMS_OUTPUT.PUT_LINE( string )输出到 SQL 控制台(如果您从 PHP 或 Java 等外部语言调用它,那么您将看不到输出,如果您有 ,则可能不会在控制台中看到它SET SERVEROUTPUT OFF)。

RAISE_APPLICATION_ERROR( error_code, error_message )如果发生无效的事情,您还可以使用引发异常。

或者,您可以在OUT参数中返回状态

PROCEDURE DELETE_STORE_INFO
(
  P_STORE_CODE IN NVARCHAR2,
  O_STATUS     OUT NUMBER
)
AS
BEGIN
  UPDATE TBL_RRSOC_STORE_INFO
  SET    ISACTIVE   = 'N'
  WHERE  STORE_CODE = P_STORE_CODE;

  IF SQL%ROWCOUNT = 0 THEN
    o_status := 0;
  ELSE
    o_status := 1;
  END IF;
END DELETE_STORE_INFO;
/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在PL / SQL中检查重复记录

PL / SQL-删除FOR IN LOOP中的当前记录

在 PL/SQL 中检查 DBMS 版本

PL / SQL如何从数据中删除字符

无法在PL / SQL中动态删除表

删除SQL中的记录后重置ID(主键)

如何使用 if exists- if not exist 在 PL/SQL 中?

SQL - 检查一组相似记录中的任何记录与 ID 匹配

在PL / SQL中检查值列表是否为NULL

PL / SQL检查变量是否在“立即执行”列表中

在 PL/SQL 中检查输入的数字是奇数还是偶数

检查 pl/sql 函数中的 select 语句是否为真

检查这些记录是否在从属表中后,sql server从表中删除重复记录

用于检查两个不同数据库的两个表中的匹配记录的存储过程PL / SQL

sql,使用ID删除重复记录

在 PL/SQL 的 FOR LOOP 中处理大量记录

比较pl / sql中的记录类型

PL sql 代码,用于检查一列中的记录是否与不同表的另一列中的记录以相同的顺序存在

如果员工年龄超过 60 岁,如何编写自动从员工表中删除记录的 pl/sql 脚本?

使用 oracle pl/sql 从地址中删除重复的单词

从字符串中删除所有元音-PL / SQL

从Oracle假脱机中删除PL / SQL代码

在 pl/sql 过程中删除完整表:ORACLE

如何通过检查ID是否存在来在SQL Server或C#中获取新记录

如何在SQL中检索PL / SQL记录类型?

使用PL / SQL删除SQL行

SQL - 检查单个表中的不同记录

如何从选择活动记录中删除ID?

过程检查设置参数(PL/SQL、ORACLE)