在存储过程中必须将查询的结果保存在变量或者游标中,因为单纯的查询在存储过程中也没法使用的。如果返回结果是单个的一条记录你可以简单的select into,如果是一个结果集最好使用游标如下:for c in (select * from(select t.*,row_number() over(partition by 类型 order by 发布时间 desc) rn from t) where rn<=10) loop dbms_output.put_line(c1.rn||c1.字段名); --打印结果集中的字段 end loop;
说下你具体的需求吧 pl/sql中select 和 into 是配对使用的,并且select into 使用时要求查询出的记录有且仅有一条 如果需要处理多条数据,就要使用游标来完成
在存储过程中必须将查询的结果保存在变量或者游标中,因为单纯的查询在存储过程中也没法使用的。如果返回结果是单个的一条记录你可以简单的select into,如果是一个结果集最好使用游标如下:for c in (select * from(select t.*,row_number() over(partition by 类型 order by 发布时间 desc) rn from t) where rn<=10) loop
dbms_output.put_line(c1.rn||c1.字段名); --打印结果集中的字段
end loop;
pl/sql中select 和 into 是配对使用的,并且select into 使用时要求查询出的记录有且仅有一条
如果需要处理多条数据,就要使用游标来完成
我的就是想要在存储过程中使用你给的SQL,让他返回所查询的结果
如果仅作为显示,可以参考2#的写法
作为其他用途,将2#语句中的dbms_output.put_line改为你的处理语句就行了