Oracle 开始块中的PLSQL选择查询 创建或替换过程验证\u日期 作为 strABC日期; strDummy VARCHAR2(20); 光标C_示例为从dummytable中选择*; 开始 对于C_RetNxWeek循环中的R_示例 strABC:=R_RetNxWeek.something; strDummy:=R_RetNxWeek.something; 端环; 如果(某物

Oracle 开始块中的PLSQL选择查询 创建或替换过程验证\u日期 作为 strABC日期; strDummy VARCHAR2(20); 光标C_示例为从dummytable中选择*; 开始 对于C_RetNxWeek循环中的R_示例 strABC:=R_RetNxWeek.something; strDummy:=R_RetNxWeek.something; 端环; 如果(某物,oracle,plsql,Oracle,Plsql,select语句结果无法按您所述存储, 应该通过 它应该使用进入子句请参考无需显式游标,使用游标进行循环。我不知道您的要求,因为我认为可以使用普通的SQL。但是,如果您确实想使用PL/SQL,则可以使用批量收集和for all 关于SELECT,您需要在PL/SQL中使用INTO子句 CREATE OR REPLACE PROCEDURE validate_date AS strABC DATE; strDummy VARCHAR2(20); CURSOR C_Example IS SELE

select语句结果无法按您所述存储, 应该通过


它应该使用
进入
子句请参考

无需显式游标,使用
游标进行循环
。我不知道您的要求,因为我认为可以使用普通的
SQL
。但是,如果您确实想使用
PL/SQL
,则可以使用
批量收集
for all

关于
SELECT
,您需要在
PL/SQL
中使用
INTO
子句

CREATE OR REPLACE PROCEDURE validate_date
AS

strABC DATE;
strDummy VARCHAR2(20);

CURSOR C_Example IS SELECT * from dummytable;

BEGIN    

    FOR R_Example IN C_RetNxWeek LOOP
      strABC := R_RetNxWeek.something;
      strDummy := R_RetNxWeek.something;

    END LOOP;


      IF (something < something) THEN 

      ELSE
         strDummy:= SELECT * FROM sometable WHERE something = something;  <-----alternative to do this?

      END IF;       
 END validate_date;
SQL> DECLARE
  2    eno       NUMBER;
  3    STR_DUMMY VARCHAR2(20);
  4  BEGIN
  5    FOR i IN
  6    (SELECT * FROM emp
  7    )
  8    LOOP
  9      eno := i.empno;
 10      dbms_output.put_line(eno);
 11    END LOOP;
 12    SELECT ENAME INTO STR_DUMMY FROM EMP WHERE EMPNO = 7788;
 13    dbms_output.put_line(STR_DUMMY);
 14  END;
 15  /
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
SCOTT

PL/SQL procedure successfully completed.

SQL>