database - 在 PLSQL 的条件语句中使用查询?

标签 database oracle plsql

我可以在 PLSQL 中执行类似以下操作吗?

if (some_query) then
    dbms_output.put_line('Your query returned at least 1 row.');
else
    dbms_output.put_line('Your query returned no rows.');
end if;

我的用例是我想检查一个值是否已经存在于我的数据库中。如果该值已经存在,那么我会做一些与该值根本不存在时不同的事情。

最佳答案

如果您检查记录是否存在,那么您可以根据键从源表中选择 COUNT(*),因为它总是会返回一个您可以检查的值:

SQL> set serverout on
SQL> DECLARE
  2      v_check NUMBER;
  3  BEGIN
  4      SELECT COUNT(*)
  5      INTO v_check
  6      FROM DUAL
  7      WHERE DUMMY = 'X'
  8      AND ROWNUM = 1;
  9
 10      if (v_check = 0) then
 11          dbms_output.put_line('Your query returned no rows.');
 12      else
 13          dbms_output.put_line('Your query returned at least 1 row.');
 14      end if;
 15  END;
 16  /
Your query returned at least 1 row.

PL/SQL procedure successfully completed.

SQL>

关于database - 在 PLSQL 的条件语句中使用查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301592/

相关文章:

java - PL/SQL JAVA ORACLE 错误 ORA-00904 : INVALID IDENTIFIER

java - Hibernate + MySQL 报告数据的最佳实践

MySQL:更改唯一键名?

regex - 如何从 PL/SQL 中的字符串中删除所有非字母字符?

asp.net - ASP 成员(member)资格奇怪的问题

java - hibernate 中的多对多多态表

database - 所需信息 : What are some of the best PL/SQL Blogs to follow?

oracle - 如何在 PL/SQL 中将天数(第 331 天)转换为 yyyymmdd?

mysql - 如果表有重复值,是否可以在 MySQL 中创建唯一索引?

c# - 引用值 : string or integer?