oracle存储过程into赋值,子查询等,来帮我看看

mkjchen 2012-04-26 03:39:41
jianju number(20,4);变量

for r in (select * from( select * from tb_points where district_name='XMQ' and location_name='上行' and pyear='2003' and pmonth='04' order by milestone)where rownum=1) loop --没有问题


select * from (select milestone-r.milestone into jianju from tb_points where district_name=r.district_name and location_name=r.location_name and pyear=r.pyear and pmonth=r.pmonth and milestone > r.milestone order by milestone) where rownum=1 ; --有问题

红色地方into jianju 变量赋值。

第二红色地方 先milestone排序后, 取第一行。

dbms_output.put_line(jianju);输出,

Error: PL/SQL: ORA-01744: 不合理的 INTO 报错。

或者有什么方法 先排序好,然后取第一行,用into 取值。
或者有什么方法 for循环 r 怎么取下一条记录。


...全文
585 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
forgetsam 2012-04-27
  • 打赏
  • 举报
回复
select aaa into jianju  from (select milestone-r.milestone aaa  from tb_points where district_name=r.district_name and location_name=r.location_name and pyear=r.pyear and pmonth=r.pmonth and milestone > r.milestone order by milestone) where rownum=1
hupeng213 2012-04-27
  • 打赏
  • 举报
回复
DECLARE
jianju NUMBER(20,4) := 0;--变量
dist number(20,4) := 0;

strSql varchar2(1000) := '';
BEGIN
--按milestone排序后,
FOR r IN
(SELECT *
FROM tb_points
WHERE district_name='XMQ'
AND location_name ='上行'
AND pyear ='2003'
AND pmonth ='04'
ORDER BY milestone
)
LOOP --没有问题
dist := jianju;
jiangju := r.milestone;
dist := jiangju - dist;
--dist就是需要的两条记录之间的间距
--这里写INSERT INTO 语句
/*
--例如下写法
strSql := 'insert into tableOther (milestone) values (' || to_char(jianju) || ')'
execute immediate strSql;
commit;
*/
END LOOP;
END;

--附:如何仅仅是取与上一条记录的差值,可以直接用LAG函数写出查询结果。


nxvan 2012-04-27
  • 打赏
  • 举报
回复
还是没太明白LZ的意思,不过游标应该可以这样取值
mkjchen 2012-04-26
  • 打赏
  • 举报
回复
查询数据,然后在插入另外一张表。for循环时 怎么读取 下一条记录。因为下一条数据的字段 减去 当前数据的字段。
啊彪123 2012-04-26
  • 打赏
  • 举报
回复
搞不明白lz想干嘛,你是想查数据呢,还是插数据。
mkjchen 2012-04-26
  • 打赏
  • 举报
回复
不可以,那样就是取一条数据,没发排序了
nxvan 2012-04-26
  • 打赏
  • 举报
回复
rownum=1放括号里面去用and连接,不知道可以不

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧