在简单查询中使用参数一直要求我使用 INTO

问题描述 投票:0回答:1

我需要检查一些记录,不想每次都重新输入ID值,所以我想我应该使用一个简单的参数作为值。 PL/SQL 开发人员不断给出错误并说我需要使用

INTO
子句。

以前关于这个同样问题的问题没有帮助,我想知道我们是否不能像 MSSQL 中那样使用参数来简化简单的查询不在存储过程中

我尝试查询并收到错误:

DECLARE
  P_COMPANYID INT;

BEGIN
  P_COMPANYID := 1935;

  SELECT * FROM COMPANY_SHAREHOLDER CS WHERE CS.ID_COMPANY = P_COMPANYID;

END;

有没有办法在没有额外变量定义的情况下避免使用 INTO ?

oracle plsql plsqldeveloper
1个回答
0
投票

在 pl/sql 中,不可能“只做一个选择”。目前尚不清楚你想做什么,但你可以使用“CURSOR FOR LOOP”。在这种情况下,您不需要显式定义变量,也不需要 SELECT INTO。

DECLARE
  P_COMPANYID INT;

BEGIN
  P_COMPANYID := 1935;
  FOR r IN (SELECT * FROM COMPANY_SHAREHOLDER CS WHERE CS.ID_COMPANY = P_COMPANYID
) LOOP
    <check what you want to check here>
  END LOOP;

END;

或者 EMP 样本数据表上的示例:

set serveroutput on size 999999
DECLARE
BEGIN
  FOR r IN (SELECT * FROM emp WHERE ename = 'KING') LOOP
    IF r.job = 'PRESIDENT' THEN
      dbms_output.put_line('he is the boss!');
    END IF;
  END LOOP;
END;

he is the boss!


PL/SQL procedure successfully completed.
© www.soinside.com 2019 - 2024. All rights reserved.