oracle数据库:业务数据处理之二
时间:2014-04-17 13:07 来源: 我爱IT技术网 作者:微风
一、任务
4\在订单中选购商品时,当用户选择了某商品,提取商品信息表中的价格(单价*折扣),销售价格根据用户持有VIP会员卡类型(通过业务系统输入,G为金卡,折扣为折上9折,S为银卡,折扣为折上92折,O为普通卡,为折上95折)计算。
5\采购单号的编码规则为"PYYYYMMXXXXX",其中"P"为采购单的前缀表示,"YYYYMM"表示采购单生成的年月,"XXXXX"为每月的流水号码,比如第一张单为"00001",第二张单为"00002",以此类推。比如2010年6月3号生成的本月的第20张采购单号为:"P20100600020"。类似地要求订单号的编码规则为"OYYYYMMXXXXX"。
6\在页面上发起采购任务时,操作为选中供应商并填写备注信息确定后生成一张新的采购单主表信息,要求:采购单编号使用单号编码函数中的功能生成,供应商编号使用选中的供应商编号,日期为默认的系统时间,总金额在有明细数据的时候自动计算,采购单状态为'1',备注为填写的备注信息。
二、脚本
4\create or replace function f_goodprice
(i_gid int t_good.gid%type,i_vip_type in char default 'W')
return number
as
v_price t_good.gprice%type;
begin
select nvl(gdiscount,1)*nvl(gprice,0) into v_price from t_good where gid=i_gid;
if upper(i_vip_type)='G' then v_price:=v_price*0.9;
elseif upper(i_vip_type)='S' then v_price:=v_price*0.92;
elseif upper(i_vip_type)='O' then v_price:=v_price*0.9;
else
null;
end if;
return v_price;
exception
when others then
dbms_output.put_line(SQLERRM);
return null;
end;
5\create or replace function f_createPMID
return char
is
v_pmid t_main_procure.pmid%type;
begin
select substr(max(pmid),-5) into v_pmid
from t_main_procure
where substr(pmid,2,6)=to_char(sysdate,'yyyymm');
if v_pmid is null then
v_pmid:='P'||to_char(sysdate,'yyyymm')||'00001';
else
v_pmid:='P'||to_char(sysdate,'yyyymm')||
trim(to_char(to_number(v_pmid)+1,'00000'));
end if;
return v_pmid;
exception
when others then
dbms_output.put_line(SQLERRM);
return null;
end;
6\create or replace procedure p_insertmainprocure
(i_sid in t_main_procure.sid%type,i_pmemo in t_main_procure.pmemo%type,o_result out number)
is
begin
insert into t_main_procure values
(f_createPMID(),i_sid,default,null,'1',i_pmemo);
o_result:=SQL%rowcount;
commit;
exception
when others then
dbms_output.put_line(sqlerrm);
o_result:=SQLCODE;
end;
三、不相关
一早看了叶檀、牛刀、范剑平的微博,各种焦虑...
心没静下来,书未看进去...
四、相关
1\对于DDL
四、相关
1\对于DDL
begin
execute immediate 'create table T(nnn varchar2(20) default ''aaa'')';
end;
2、最初的时候,输入ed,提示为
SQL> ed
Wrote file afiedt.buf
378
按照百度的,在操作系统export EDITOR=vi或者SQL> define _EDITOR=vim
SQL> ed
SP2-0107: 无须保存。
以为跛子整成瘫子,再一百度,“使用edit命令,需要至少先执行一条语句后才行,否则会提示“无需保存””,再把命令粘贴后ed,果然,瘫子还原,OK。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5115.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
