我写了一个简单的程序.我尝试将选择结果存储在变量中.我使用“SELECT INTO”查询,但我不能这样做.
例:
DECLARE v_employeeRecord employee%ROWTYPE; BEGIN SELECT * INTO v_employeeRecord FROM Employee WHERE Salary > 10; END;
你有几个选择.您可以将该查询转换为游标:
DECLARE CURSOR v_employeeRecords IS SELECT * FROM Employee WHERE Salary > 10; v_employeeRecord employee%ROWTYPE; BEGIN FOR v_employeeRecord IN v_employeeRecords LOOP /* Do something with v_employeeRecord */ END LOOP; END;
或者,您可以创建一个TABLE变量:
DECLARE v_employeeRecord employee%ROWTYPE; v_employeeRecords IS TABLE OF employee%ROWTYPE; i BINARY_INTEGER; BEGIN SELECT * BULK COLLECT INTO v_employeeRecords FROM Employee WHERE Salary > 10; i := v_employeeRecords.FIRST; WHILE v_employeeRecords.EXISTS(i) LOOP v_employeeRecord := v_employeeRecords(i); /* Do something with v_employeeRecord */ i := v_employeeRecords.NEXT(i); END; END;
我没有在Oracle中尝试这些示例,因此您可能会遇到编译器错误…