FOR rs in (SELECT SD.BOOKID,B.NAME BOOKNAME,BS.NAME,BS.ID
B.PURBLISHINGHOUSE,B.PRICE,B.PURCASEQUANTITY,B.STOCK,SD.PURCASEQUANTITY
FROM SUBSCRIBEDETAIL SD,SUBSCRIBE S,BOOK B,BOOKSELLER BS
WHERE S.STATE=purchasestate
AND SD.STATE=purchasedetailstate
AND S.DSID=SD.DSID
AND SD.BOOKID=B.ID
AND B.BOOKSELLER=BS.ID
AND B.TYPE=1
GROUP BY SD.BOOKID)
B.PURBLISHINGHOUSE,B.PRICE,B.PURCASEQUANTITY,B.STOCK,SD.PURCASEQUANTITY
FROM SUBSCRIBEDETAIL SD,SUBSCRIBE S,BOOK B,BOOKSELLER BS
WHERE S.STATE=purchasestate
AND SD.STATE=purchasedetailstate
AND S.DSID=SD.DSID
AND SD.BOOKID=B.ID
AND B.BOOKSELLER=BS.ID
AND B.TYPE=1
GROUP BY SD.BOOKID)
解决方案 »
- oracle9i的12500错误
- 关于数据库中数据的选择问题
- 求sql语句,实现字符串字段的连接
- 有挑战:VB连接oracle,显示中文乱码
- 请解释下 INDEX BY BINARY_INTEGER,谢谢
- oracle怎么回收表owner的权限
- 如何删除表中重复的记录??
- 急请教PROCEDURE高手,在Object Browser里,我这个PROCEDURE为何总是建立不成?
- 请教ORACLE8 FOR AIX上的问题
- 做PL/SQL的开发,用什么工具比较好?
- 把timestamp类型的值减去3分钟,怎么操作?
- [在线等]一个关于ORACLE触发器的问题,需要查询多个表才能实现,请高手指点一下,谢谢,
B.PURBLISHINGHOUSE,B.PRICE,B.PURCASEQUANTITY,B.STOCK,SD.PURCASEQUANTITY
FROM SUBSCRIBEDETAIL SD,SUBSCRIBE S,BOOK B,BOOKSELLER BS
WHERE S.STATE=purchasestate
AND SD.STATE=purchasedetailstate
AND S.DSID=SD.DSID
AND SD.BOOKID=B.ID
AND B.BOOKSELLER=BS.ID
AND B.TYPE=1
GROUP BY SD.BOOKID; ) 不用into rs或者可以写成
create procedure purchasebooktable(
purchasestate in number,
purchasedetailstate in number,
vResult OUT SYS_REFCURSOR
)
is
type number;
bookname varchar2(100);
bookid number;
publishinghouse varchar2(100);
booksellername varchar2(100);
booksellerid number;
price number;
spotpurchasequantity number;
stock number;
purchasequantity number;
rst publicpackage.resultset;
cursor rs_a is
SELECT SD.BOOKID,B.NAME BOOKNAME,BS.NAME,BS.ID
B.PURBLISHINGHOUSE,B.PRICE,B.PURCASEQUANTITY,B.STOCK,SD.PURCASEQUANTITY
INTO rs
FROM SUBSCRIBEDETAIL SD,SUBSCRIBE S,BOOK B,BOOKSELLER BS
WHERE S.STATE=purchasestate
AND SD.STATE=purchasedetailstate
AND S.DSID=SD.DSID
AND SD.BOOKID=B.ID
AND B.BOOKSELLER=BS.ID
AND B.TYPE=1
GROUP BY SD.BOOKID;
begin
FOR rs in rs_a
LOOP
INSERT INTO L_PURCHASE(BOOKID,BOOKNAME,BOOKSELLERID,BOOKSELLERNAME,
PURBLISHINGHOUSE,PRICE,STOCK,SPOTPURCASEQUANTITY)
VALUES(RS.BOOKID,RS.BOOKNAME,RS.ID,RS.NAME,RS.PURBLISHINGHOUSE,RS.PRICE,RS.STOCK
,RS.SPOTPURCASEQUANTITY);
OPEN vResult FOR 'SELECT * FROM L_PURCHASE';
END LOOP;
end;
----------------------------
这是定义一个游标,得到一个记录集.
FOR rs in rs_a
LOOP
INSERT INTO L_PURCHASE(BOOKID,BOOKNAME,BOOKSELLERID,BOOKSELLERNAME,
PURBLISHINGHOUSE,PRICE,STOCK,SPOTPURCASEQUANTITY)
VALUES(RS.BOOKID,RS.BOOKNAME,RS.ID,RS.NAME,RS.PURBLISHINGHOUSE,RS.PRICE,RS.STOCK
,RS.SPOTPURCASEQUANTITY);
OPEN vResult FOR 'SELECT * FROM L_PURCHASE';
END LOOP;