对于数百万条记录的操作,我希望限制为500,但以下代码会给出错误。 错误报告: ORA-06550:第6行,第49栏: PLS-00103:遇到以下任何一种情况时遇到符号“LIMIT”:
DECLARE
TYPE EMP_T IS TABLE OF NUMBER;
EMP_ID EMP_T;
QRY VARCHAR2(4000):='SELECT EMPLOYEE_ID FROM EMPLOYEES';
begin
execute immediate QRY bulk collect into EMP_ID LIMIT 500;
END;
答案 0 :(得分:0)
这不是使用LIMIT子句的方法。我认为你不能在BULK COLLECT中使用LIMIT子句和EXECUTE IMMEDIATE。 BULK COLLECT LIMIT in EXECUTE IMMEDIATE
<强> 实施例 强>
DECLARE
TYPE EMP_T IS TABLE OF NUMBER;
EMP_ID EMP_T;
CURSOR c_data IS SELECT empid FROM EMPLOYEE;
begin
OPEN c_data;
LOOP
FETCH c_data
BULK COLLECT INTO EMP_ID LIMIT 100;
EXIT WHEN EMP_ID.count = 0;
-- Process contents of collection here.
DBMS_OUTPUT.put_line(EMP_ID.count || ' rows');
END LOOP;
CLOSE c_data;
END;
/