我写了一个简单的程序.我尝试将选择结果存储在变量中.我使用“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中尝试这些示例,因此您可能会遇到编译器错误…