oracle中 =: 和 := 分别是什么意思

 我来答
wangzhiqing999
推荐于2017-10-07 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3339万
展开全部
oracle 里面 := 是 存储过程的 赋值的意思
例如:
SQL> DECLARE
2 testvalue VARCHAR2(20);
3 BEGIN
4 testvalue := 'First Test!';
5 dbms_output.put_line( testvalue );
6 END;
7 /
First Test!

PL/SQL procedure successfully completed.

至于 =:
这个我怀疑, 有可能是 触发器里面的判断处理
例如:

CREATE OR REPLACE TRIGGER BeforeInsertDetail
BEFORE INSERT ON OrderDetail
FOR EACH ROW
DECLARE v_nowCount INT;
BEGIN
SELECT
Amount INTO v_nowCount
FROM
Goods
WHERE
ID = :new.GoodsID;

IF v_nowCount - :new.Amount < 0 THEN
RAISE_APPLICATION_ERROR(-20000, '库存不足!');
ELSE
UPDATE
Goods
SET
Amount = Amount - :new.Amount
WHERE
ID = :new.GoodsID;
END IF;
END;
zhenxin0603
2011-10-20 · TA获得超过600个赞
知道小有建树答主
回答量:600
采纳率:100%
帮助的人:452万
展开全部
=:应该相当于 a = :b 表明b是个绑定变量,需要执行时进行变量绑定
:= 相当于一般编程语言中的 赋值 a := 1 即将 数字1赋值给变量 a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妥实且轻松的小喜鹊4110
2011-10-20
知道答主
回答量:32
采纳率:0%
帮助的人:7.5万
展开全部
=: 后面是要接变量
:= 是在procdure中接常量值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-11-13
展开全部
有额度后就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式