免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2595 | 回复: 14
打印 上一主题 下一主题

order by [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-09 14:51 |只看该作者 |倒序浏览
我不知道为什么会出现这么怪的问题,我写一个很简单的存储过程,   其中有一句  
INSERT INTO  ABC.TABLE1
SELECT BM,COUNT(*) AS TOTAL,SUM(2-XBDM) AS NSRS,SUM(XBDM-1) AS VSRS
FROM STUINFO.XJ_XJB
WHERE ZYXH=VZYXH
GROUP BY ROLLUP(BM)
ORDER BY BM;

我如果不要最后一句ORDER BY就可以通过,但是一加上最后一句,就始终不可以编译通过,我不知道为什么?

论坛徽章:
0
2 [报告]
发表于 2003-06-09 14:56 |只看该作者

order by

rollup必须和order by 连用

论坛徽章:
0
3 [报告]
发表于 2003-06-09 14:59 |只看该作者

order by

不是太明白?请指教。但是为什么在TOAD下面却可以正常执行呢?

论坛徽章:
0
4 [报告]
发表于 2003-06-09 15:06 |只看该作者

order by

rollup汇总子句必须和order by 排序联合使用

即出现rollup必须使用order by

论坛徽章:
0
5 [报告]
发表于 2003-06-09 15:37 |只看该作者

order by

我不知道是不是我没有将问题说清楚,我是家了ORDER BY 这句话不行不是不加不行,不加反而可以。

而且加不加ORDER BY这句话在TOAD下执行没有任何问题。

论坛徽章:
0
6 [报告]
发表于 2003-06-09 15:38 |只看该作者

order by

9i 中可以,在这之前的PL/SQL编译器不支持这种SQL句法,你需要使用动态SQL,如:

execute immediate
'INSERT INTO ABC.TABLE1
SELECT BM,COUNT(*) AS TOTAL,SUM(2-XBDM) AS NSRS,SUM(XBDM-1) AS VSRS
FROM STUINFO.XJ_XJB
WHERE ZYXH=VZYXH
GROUP BY ROLLUP(BM)
ORDER BY BM';

论坛徽章:
0
7 [报告]
发表于 2003-06-09 15:47 |只看该作者

order by

这句话是直接加到存储过程中吗?我加了,编译通过。但是在程序运行过程师,好像压根就没有执行这句话?

论坛徽章:
0
8 [报告]
发表于 2003-06-09 16:05 |只看该作者

order by

是的,将此直接写到存储过程中。

请不要用“好像”这个词,你如何判断他没有执行?
别告诉我是因为你没有commit而在别的SESSION中看不到数据的原因吧。

论坛徽章:
0
9 [报告]
发表于 2003-06-09 16:09 |只看该作者

order by

(ERR OUT INTEGER,
  VZYXH IN CHAR
)

AS

BEGIN

--各系各班人数统计
DELETE FROM STUINFO.XG_YX_BJTZ;
execute immediate
'INSERT INTO STUINFO.XG_YX_BJTZ
SELECT BM,COUNT(*) AS TOTAL,SUM(2-XBDM) AS NSRS,SUM(XBDM-1) AS VSRS
FROM STUINFO.XJ_XJB
WHERE ZYXH=VZYXH
GROUP BY ROLLUP(BM);
ORDER BY BM';
UPDATE STUINFO.XG_YX_BJTZ
SET BM='小计' WHERE BM IS NULL;
COMMIT;
ERR:=0;
EXCEPTION
  WHEN OTHERS THEN  
  ERR:=-1;
END XG_YX_RS_BJTJ;

论坛徽章:
0
10 [报告]
发表于 2003-06-09 16:10 |只看该作者

order by

是没有执行,因为执行完毕后表中没有任何数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP