create or replace procedure 什么意思

小弟就5分了求解谢谢。。。★★★★★★★★★★★★★有程序可以解释下么???谢谢!·~··... 小弟就5分了 求解 谢谢。。。
★★★★★★★★★★★★★
有程序可以解释下么???谢谢!·~··
展开
 我来答
a2265
2008-01-09 · TA获得超过1908个赞
知道小有建树答主
回答量:1140
采纳率:0%
帮助的人:602万
展开全部
当没有这个过程时,创建这个过程。
但是为了保证能够每次都创建,所以在有重名的旧过程存在时会将旧的替换为现在的。
netgr
2008-01-09 · TA获得超过251个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:332万
展开全部
存储过程的定义格式
,例子

CREATE OR REPLACE PROCEDURE SP_RECODE_BY_YEAR(INYEAR IN VARCHAR2,
MSG OUT VARCHAR2) AS

V_PROD_ID NUMBER(9);
V_PROD_NAME VARCHAR2(80);
V_QTY_YEAR NUMBER(9);
V_OLD_UNITPRICE NUMBER(9);
V_NEW_UNITPRICE NUMBER(9);

CURSOR CUR_PROD -- IS
SELECT A.PROD_ID, A.UNIT_PRICE, SUM(A.UNIT_PRICE * A.QTY)
FROM SALE_ITEM A
WHERE YEAR(A.ORDER_DATE) = INYEAR
GROUP BY A.PROD_ID, A.UNIT_PRICE;

BEGIN

OPEN CUR_PROD;
LOOP

FETCH CUR_PROD
INTO V_PROD_ID, V_OLD_UNITPRICE, V_QTY_YEAR;
EXIT WHEN CUR_PROD%NOTFOUND;

BEGIN
--
IF V_QTY_YEAR >= 30000 THEN
V_NEW_UNITPRICE := 0.6 * V_OLD_UNITPRICE;
ELSIF V_QTY_YEAR < 30000 THEN
V_NEW_UNITPRICE := 0.7 * V_OLD_UNITPRICE;
END IF;
END;
--QUERY_OUT
INSERT INTO QUERY_OUT
(产品编号, 产品名称, 年销售总额, 新单价)
VALUES
(V_PROD_ID,
(SELECT PROD_NAME FROM PRODUCT WHERE PROD_ID = V_PROD_ID),
V_QTY_YEAR,
V_NEW_UNITPRICE);
COMMIT;

END LOOP;
CLOSE CUR_CBL_SECT_ID;
MSG := 'Execute Successfully!';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END SP_RECODE_BY_YEAR;

/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
59437579
2008-01-09
知道答主
回答量:36
采纳率:0%
帮助的人:19.8万
展开全部
创建或更换程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式