Oracle 开始块中的PLSQL选择查询 创建或替换过程验证\u日期 作为 strABC日期; strDummy VARCHAR2(20); 光标C_示例为从dummytable中选择*; 开始 对于C_RetNxWeek循环中的R_示例 strABC:=R_RetNxWeek.something; strDummy:=R_RetNxWeek.something; 端环; 如果(某物
select语句结果无法按您所述存储, 应该通过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
它应该使用
进入
子句请参考无需显式游标,使用游标进行循环
。我不知道您的要求,因为我认为可以使用普通的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>