永发信息网

帮忙翻译几句简单的存储过程呀,谢谢~~

答案:2  悬赏:40  手机版
解决时间 2021-07-30 13:46

create or replace function bit_f_and(in_value IN NUMBER, in_mask IN NUMBER)
return number is

i number;
n_result number;
n_value number;
n_mask number;

begin

n_value := in_value;
n_mask := in_mask;
i := 0;
n_result := n_value;

while n_value > 0 loop
if (mod(n_mask, 2) = 0) and (mod(n_value, 2) = 1) then ?
n_result := n_result - power(2, i); ?
end if;

n_value := TRUNC(n_value / 2); ?
n_mask := TRUNC(n_mask / 2);
i := i + 1;

end loop;
return n_result;

end;

还有for update of OUT_PRICE, OUT_MONEY, STATUS; 是起什么作用的呀?

最佳答案

for update of columns 表示这个select游标可以更新columns


这个函数应该"与"的位运算


if (mod(n_mask, 2) = 0) and (mod(n_value, 2) = 1) then


--表示n_mask的最后一位为0且n_value的最后一位为1,也就是说掩码要求为0,但是此位上原值为1


--这个地方一共有四种情况,两者都是1,两者都是0,0/1,1/0,按照这个算法的逻辑(返回值是在原in_value的基础之上获得),假设v=in_value的第i位,m=in_mask的第i位,r=n_result的第i位


--v=1,m=1时,r应该是1,r=v,不需改


--v=0,m=0时,r应该是0,r=v,不需改


--v=0,m=1时,r应该是0,r=v,不需改


--v=1,m=0时,r应该是0,r<>v,此时需要去掉v的1值,所以用下面的运算式去掉了该位上的1


n_result := n_result - power(2, i); --去掉此位上的1值


--------------------下面这一段代码表示value和mask都往右移动一位


n_value := TRUNC(n_value / 2); ?
n_mask := TRUNC(n_mask / 2);
i := i + 1;


不知道我解释能不能让你明白

全部回答

create or replace function bit_f_and(in_value IN NUMBER,in_mask IN NUMBER) return number is --创建函数bit_f_and,in_value、in_mask是输入参数,返回一个number类型的值

i number; --声明number类型的i、n_result、n_value、n_mask n_result number; n_value number; n_mask number;

begin

n_value := in_value; --蒋传过来的输入参数给n_value、n_mask赋值 n_mask := in_mask; i := 0; --初始化i n_result := n_value; --给n_result赋值

while n_value > 0 loop --当满足n_value > 0时进入循环 if (mod(n_mask, 2) = 0) and (mod(n_value, 2) = 1) then ? --mod表示的是%,表示的是n_mask对 2取余。如果同时满足(mod(n_mask, 2) = 0)和(mod(n_value, 2) = 1)就执行if条件里 n_result := n_result - power(2, i); ? power是升幂。即2的i次方 end if;

n_value := TRUNC(n_value / 2); ? --取整,即蒋小数点后面全部省去 n_mask := TRUNC(n_mask / 2); i := i + 1;

end loop; return n_result;

end;

还有for update of OUT_PRICE, OUT_MONEY, STATUS; 是起什么作用的呀? --表示同步更新,当OUT_PRICE, OUT_MONEY, STATUS字段的值发生改变,蒋同步更新数据

希望对你有帮助!

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
So nice of the only love , it's so be
你用的什么祛痘的呀 给个药方把
武昌区武汉楚天盛情酒店地址在哪,我要去那里
完美国际石头熔岩BB70级有好多血和防
天津到上海车费要多少钱
C怎么写返回结构体类型的运算符重载
美国多少人口?
生活杂这么复杂?
成都最新楼盘有哪些?
三星3050c怎么样?最低多少钱?
怎么领养QQ宠物啊
驾校代收规费是什么,亲,我想问一下什么是驾
宛城区南阳桂枝堂大药房地址在哪里啊
经常头痛可能会是什么原因
古董为什么价值连成?(他们拿来做什么)
推荐资讯
过道一边栽五棵树每两棵间是5米从第一棵走到
谁有高清的播放器下载`要求无毒`
快乐大本营,
理货英语有哪些
长痛不如短痛,感情纠结?会说狠话流着眼泪说
此图片人物叫什么
什么方法去除法黑头和夹除法黑头后的痕
淇县鹤壁河南省农村信用社24小时自助银行地址
找失散多年的同学?
种植牛大力需要多久才能收获?
魔影双龙剑一般值多少金币?
瓦松栓几盒一了程啊,用后刚开始流血后来就不
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?