我有一个sales表有上千条记录,我想利用游标查询2000到3000之间的记录,我这样写对吗?
declare
cursor sales_cursor is select time_id from sales;
sales_record sales_cursor%ROWCOUNT;
begin
for sales_record IN sales_cursor loop
if sales_cursor%ROWCOUNT>=2000 and sales_cursor%ROWCOUNT<=3000
then
dbms_output.put_line('the result is:'||sales_record.time_id);
end if;
end loop;
end;
/编译后报如下错
ERROR at line 3:
ORA-06550: line 3, column 27:
PLS-00208: identifier 'ROWCOUNT' is not a legal cursor attribute
ORA-06550: line 3, column 14:
PL/SQL: Item ignored我刚学PLSQL,请大家帮我看看
declare
cursor sales_cursor is select time_id from sales;
sales_record sales_cursor%ROWCOUNT;
begin
for sales_record IN sales_cursor loop
if sales_cursor%ROWCOUNT>=2000 and sales_cursor%ROWCOUNT<=3000
then
dbms_output.put_line('the result is:'||sales_record.time_id);
end if;
end loop;
end;
/编译后报如下错
ERROR at line 3:
ORA-06550: line 3, column 27:
PLS-00208: identifier 'ROWCOUNT' is not a legal cursor attribute
ORA-06550: line 3, column 14:
PL/SQL: Item ignored我刚学PLSQL,请大家帮我看看
declare
cursor sales_cursor is select time_id from sales;
sales_record sales_cursor%rowtype;
--写错了不是%rowcount 是%rowtype
begin
for sales_record IN sales_cursor loop
if sales_cursor%ROWCOUNT>=2000 and sales_cursor%ROWCOUNT<=3000
then
dbms_output.put_line('the result is:'||sales_record.time_id);
end if;
end loop;
end;
CURSOR sales_cursor IS
SELECT time_id FROM sales;
--sales_record sales_cursor%ROWCOUNT;这一行画蛇添足,去掉就OK
BEGIN
FOR sales_record IN sales_cursor LOOP
IF sales_cursor%ROWCOUNT >= 2000 AND sales_cursor%ROWCOUNT <= 3000 THEN
dbms_output.put_line('the result is:' || sales_record.time_id);
END IF;
END LOOP;
END;
/