Oracle数据库管理与维护大作业_第1页
Oracle数据库管理与维护大作业_第2页
Oracle数据库管理与维护大作业_第3页
Oracle数据库管理与维护大作业_第4页
Oracle数据库管理与维护大作业_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库管理与维护大作业

大作业

专业班级软件11XX班

姓名XXX

学号XXXX

完成日期2013-XX-XX

题目要求:

将下面的题目在Oraclellg中实现,并手写纸质版报告一份,包括所有

实现功能的SQL*PLUS命令或SQL或PL/SQL语句及运行结果。

新建一个数据库,命名为oraclezy,并完成以下功能:

记录某采油厂对油/水井实施作业时所消耗的成本(命名为作业表zyb)。

(作业:可懂得为对油/水井进行大修)

成本的消耗包括预算、结算、入账三个状态。

预算:采油队向治理部门提出作业申请,并经治理部门批准后,由治

理部门负责录入。

结算:某次作业施工终止后,由治理部门与施工单位共同核算各种成

本,由治理部门负责录入。

入账:结算后,财务部门将成本计入采油厂账目,由财务部门录入。

按照对以上题意的懂得,利用SQLPLUS,定义所需的数据表,包括

定义有关约束条件(主码、外码及其他约束)。

—Createtable

createtableZYB

(

单据号VARCHAR2(20)notnull,

预算单位VARCHAR2(20)notnull,

井号VARCHAR2(20)notnull,

预算金额NUMBER(IO)notnull,

预算人VARCHAR2(20)notnull,

预算日期DATEnotnull,

开工日期DATE,

完工日期DATE,

施工单位VARCHAR2(20),

施工内容VARCHAR2(20),

材料费NUMBER(IO),

人工费NUMBER(IO),

设备费NUMBER(IO),

其它费用NUMBER(IO),

结算金额NUMBER(IO),

结算人VARCHAR2(20),

结算日期DATE,

入账人VARCHAR2(20),

入账日期DATE,

入账金额NUMBER

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZYB

addconstraintDJNOprimarykey(单据号)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZYBtoLIY

AN;

—Createtable单位代码表

-由于表名用汉字表示操作时专门苦恼,就取表名的每个字的首字母

并冠以Z组成表名,如本例ZDWDMB

createtableZDWDMB

(

单位代码VARCHAR2(20)notnull,

单位名称VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

-Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZDWDMB

addconstraintDWNAMEunique(单位名称)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZDWDMBt

oLIYAN;

—Createtable油水井表

createtableZYSJB

(

井号VARCHAR2(20)notnull,

井别VARCHAR2(20)notnull,

单位代码VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZYSJB

addconstraintJNOprimarykey(井号)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZYSJBtoLI

YAN;

—Createtable

-施工单位表

createtableZSGDWB

(

施工单位名称VARCHAR2(20)notnull,

施工单位号VARCHAR2(20)notnull

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZSGDWB

addconstraintSGNOprimarykey(施工单位号)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexonZSGDWBto

LIYAN;

-物码表

—Createtable

createtableZWMB

(

物码VARCHAR2(20)notnull,

名称规格VARCHAR2(20)notnull,

计量单位VARCHAR2(20)notnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

-Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableZWMB

addconstraintWNOprimarykey(物码)

usingindex

tablespaceSYSTEM

pctfree10

initrans2

maxtrans255

storage

initial64K

nextIM

minextents1

maxextentsunlimited

);

—Grant/Revokeobjectprivileges

grantselect,insert,update,delete,references,alter,indexZWMBto

IYAN;

-材料费表

—Createtable

createtableZCLFB

(

作业项目编号VARCHAR2(20)notnull,

物码VARCHAR2(20)notnull,

消耗数量NUMBERnotnull,

单价NUMBERnotnull

)

tablespaceSYSTEM

pctfree10

pctused40

initrans1

maxtrans255

storage

(

initial64K

nextIM

minextents1

maxextentsunlimited

);

利用SQLPLUS,录入以下有关的基础数据:

单位代码表:1122采油厂

112201采油一矿112202采油二矿

112201001采油一矿1队112201002采油一矿2队112201003

采油一矿3队

112202001采油二矿1队112202002采油二矿2队

油水井表:(yOOl油112201001)(y002油1122010

01)

(yOO3油112201002)(sOOl水112201002)

(y004油112201003)(s002水112202001)

(sOO3水112202001)(y005油112202002)

施工单位表:作业公司作业一队作业公司作业二队作业公司作

业三队

物码表:wmOOl材料一吨wm002材料二米wm003材料三

桶wm004材料四袋

ZYB:

〃某作业项目编号zy2009001

//开工日期:2009-5-4完工日期:2009-5-25施工单位:作业公司作

业一队施工内容:堵漏

材料费:7000.00(其中材料一:2000.00材料二:2000.00材料三:

2000.00材料四:1000.00)

人工费:2500.00设备费:1000.00其它费用:1400.00结算金额:

11900.00

〃某作业项目编号zy2009002

//开工日期:2009-5-4完工日期:2009-5-23施工单位:作业公司作

业二队施工内容:检泵

材料费:6000.00(其中材料一:2000.00材料二:2000.00材料三:

2000.00)〃隐含单价和数量

人工费:1500.00设备费:1000.00其它费用2400.00结算金额:

10900.00

〃某作业项目编号zy2009003

〃开工日期:2009-5-6完工日期:2009-5-23施工单位:作业公司作

业二队施工内容:检泵

材料费:6500.00(其中材料一:2000.00材料二:2000.00材料三:

2500.00)

人工费:2000.00设备费:500.00其它费用:1400.00结算金额:1

0400.00

〃某作业项目编号zy2009004

//开工日期:2009-5-4完工日期:2009-5-24施工单位:作业公司作

业三队施工内容:防砂

材料费:6000.00(其中材料一:2000.00材料二:2000.00材料四:

2000.00)

人工费:2000.00设备费:1000.00其它费用:1600.00结算金额:

10600.00

〃某作业项目编号zy2009005

//开工日期:2009-5-4完工日期:2009-5-28施工单位:作业公司作

业三队施工内容:防砂

材料费:7000.00(其中材料一:2000.00材料二:2000.00材料四:

3000.00)

人工费:1000.00设备费:2000.00其它费用:1300.00结算金额:

11300.00

//(未入账!!!)

那个地点只列举一个导出的数据表:

"施工单位名称","施工单位号","ROWID"

”作业公司作业一队"JzyOlOOlAAAR7YAABAAAVChAAA"

”作业公司作业二队","zy01002","AAAR7YAABAAAVChAAB"

”作业公司作业三^","zy01003","AAAR7YAABAAAVChAAC"

利用SQLPLUS查询以下数据:

采油一矿2队2009-5-1到2009-5-28有哪些项目处于结算状态,列出相

应材料费明细。结算状态有值,不用管入账是否有值。

SQL>select*fromzclfbwhere作业项目编号in

2(select单据号fromzybwhere预算单位='采油一矿2队,

3and结算日期〉=to_date(2009-5-r,'yyyy-mm-dcT)

4*and结算日期<=1。_(^0(2009-5-287丫丫丫丫-111111-(1(1))

作业项目编号物码消耗数量

单价

zy2009002wmOOl200

10

zy2009002wm002200

10

zy2009002wm003200

10

zy2009003wmOOl200

10

zy2009003wm002200

10

zy2009003wm003250

10

已选择6行。

已用时刻:00:00:00.31

采油一矿2队2009-5-1到2009-5-28总的入账金额。

SQL>selectSUM(入帐金额)fromzyb

2where预算单位=,采油一矿2队,

3and入账日期>=TO_DATE('2009-5-1YYYY-MM-DD')

4*AND入账日期<=TO_DATE(2009-5-28','YYYY-MM-DD)

SUM(入帐金额)

21300

采油一矿2009-5-1到2009-5-28总的入账金额。

SQL>selectsum(入帐金额)fromzyb

2where预算单位like'采油一矿%,

3and入账日期〉=to_date(2009-5-l?yyyy-mm-dcT)

4*and入账日期<=1。_(^0(2009-5-28',〜丫丫丫-111111-£1(1)

SUM(入帐金额)

33200

有哪些人员参与了入账操作。

SQL>selectdistinct入账人fromzyb;

入账人

王五

赵六

2009-5-1到2009-5-28有结算未入帐的项目。

项目-单据号

SQL>SELECT单据号FROMZYB

2WHERE结算日期<=TO_DATE(2009528?YYYY-MM-DD,)

3AND结算日期〉=TO_DATE(2009-5-l?YYYY-MM-DD)

4*AND入账人isNULL

5AND结算人isnotNULL

单据号

zy2009005

列出采油一矿2队的所有项目,按入账金额从高到低排列o

项目-项目号

SQL>select单据号,入账金额fromzyb

2where预算单位=,采油一矿2队,

3*orderby入账金额desc

单据号入账金额

zy200900210900

zy200900310400

列出有哪些单位实施了项目,并运算各单位所有项目结算金额总和。

SQL>SELECT施工单位,sum(结算金额)FROMZYB

2GROUPBY施工单位;

施工单位SUM(结算金额)

作业公司作业一队11900

作业公司作业二队21300

作业公司作业三队21900

已用时刻:00:00:00.04

找出消耗了材料三且消耗超过了2000元的项目,列出相应明细(利用子

查询)。〃谁的明细?-该项目的

SQL>select*fromzybwhere单据号in

2(select作业项目编号fromzclfbwhere(消耗数量*单价)>2000

3*and物码='wm003')

单据号预算单位井号

预算金额预算人预算日期开工日期

完工日期施工单位施工内容材

料费人工费设备费其它费用结算金额结算人

结算日期入账人入账日期入账

金额

zy2009003采油一矿2队sOOl

10500张三01-5月-0906-5月-09

23-5月-09作业公司作业二队检泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

已用时刻:00:00:00.28

作业公司二队参与了哪些项目。

SQL>select单据号,施工单位FROMZYB

2*WHERE施工单位=,作业公司作业二队,

单据号施工单位

zy2009002作业公司作业二队

zy2009003作业公司作业二队

已用时刻:00:00:00.01

作业公司一队和二队参与了哪些项目(利用union)。〃集合查询

SQL>select单据号FROMZYB

2WHERE施工单位㈢作业公司作业一队,

3UNION

4select单据号FROMZYB

5*WHERE施工单位士作业公司作业二队,

单据号

zy2009001

zy2009002

zy2009003

已用时刻:00:00:00.01

利用SQLPLUS完成以下操作:

将编号为zy2009005的项目的人工费和结算金额增加100元。

-增加前的数据

SQL>select单据号,人工费,结算金额fromzyb;

单据号人工费结算金额

zy2009001250011900

zy2009002150010900

zy2009003200010400

zy2009004200010600

zy2009005100011300

已用时刻:00:00:00.00

SQL>updatezyb

2*set人工费=人工费+100,结算金额=结算金额+100

已更新5行。

已用时刻:00:00:00.14

-操作后的数据

SQL>select单据号,人工费,结算金额fromzyb;

单据号人工费结算金额

zy2009001260012000

zy2009002160011000

zy2009003210010500

zy2009004210010700

zy2009005110011400

已用时刻:00:00:00.00

删除已结算未入帐的项目。(可结合查询5)

-删除前的数据

SQL>select单据号fromzyb;

单据号

zy2009001

zy2009002

zy2009003

zy2009004

zy2009005

zy2009006

SQL>deletefromzybwhere单据号=

2(select单据号fromzyb

3*where结算金额isnotnulland入账金额isnull)

已删除1行。

已用时刻:00:00:00.01

-删除后结果

SQL>select单据号fromzyb;

单据号

zy2009001

zy2009002

zy2009003

zy2009004

zy2009006

已用时刻:00:00:00.00

利用SQLPLUS进行如下事务处理练习(把下列五条语句作为一个事

务处理,只有五条语句全部成功执行才做提交,并给出提示信息;否则就

做回滚处理,并给出提示信息):

insertintozybvalues('zy2009006','112202002';y00510000,<H'07-0

1-2009',

,07-04-2009','07-25-2009';^业公司作业一队?堵漏(7000,2500,1000,140

0;李四','07-26-2009',11900,五','07-28-2009',11900)

insertintoclfbvalues('zy2009006','wm00r,200,10)

insertintoclfbvalues('zy2009006','wm002',200,10)

insertintoclfbvalues('zy2009006','wm003',200,10)

insertintoclfbvalues('zy2009006','wm004',100,10)

CLFB--材料费表

SQL>insertintozybvalues('zy2009006','112202002';y00510000,<H

2to_date('2009-07-0r,'yyyy-mm-dd'),to_date('2009-07-04','yyyy-mm-

dd'),

3to_date(2009-07-25;yyyy-mm-ddb作业公司作业一队?堵漏;

47000,2500,1000,1400,11900,'李K',to_dateC2009-07-26','yyyy-mm-d

d'),

5*'i5',to_dateC2009-07-287yyyy-mm-dd'),11900)

已创建1行。

已用时刻:00:00:00.29

SQL>savepointsi;

储存点已创建。

已用时刻:00:00:00.00

SQL>insertintozclfbvalues('zy20090067wm00r,200,10);

已创建1行。

已用时刻:00:00:00.00

SQL>savepoints2;

储存点已创建。

已用时刻:00:00:00.00

SQL>insertintozclfbvalues('zy20090067wm002',200,10);

已创建1行。

已用时刻:00:00:00.00

SQL>savepoints3;

储存点已创建。

已用时刻:00:00:00.00

SQL>insertintozclfbvalues('zy2009006','wm003',200,10);

已创建1行。

已用时刻:00:00:00.00

SQL>savepoints4;

储存点已创建。

已用时刻:00:00:00.01

SQL>insertintozclfbvalues('zy2009006','wm004',100,10);

已创建1行。

已用时刻:00:00:00.00

SQL>select*fromzybwhere单据号='zy2009006';--检验是否成功

单据号预算单位井号

预算金额预算人预算日期开工日期

完工日期施工单位施工内容材

料费人工费设备费其它费用结算金额结算人

结算日期入账人入账日期入账

金额

zy2009006112202002y005

10000张三01-7月-0904-7月-09

25-7月-09作业公司作业一队堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

已用时刻:00:00:00.26

SQL>select*fromzclfbwhere作业项目编号='zy2009006';--检验

是否成功

作业项目编号物码消耗数量

单价

zy2009006wmOOl200

10

zy2009006wm002200

10

zy2009006wm003200

10

zy2009006wm004100

10

已用时刻:00:00:00.01

SQL>commit;

提交完成。

已用时刻:00:00:00.00

利用SQLPLUS进行如下游标练习:

定义一个游标,用于存放作业表的全部行数据。并打印以下表头和各

行数据。

表头:单据号消耗单位井号预算金额预算人预算日期开工日期

完工日期施工单位施工内容材料费人工费设备费其它费用结算金

额结算人结算日期入账金额入账人入账日期

执行以上所定义的游标,查看是否能正确输出结果。

SQL>begin

2forzybm(select*fromzyb)

3loop

4dbms_output.put(单据号:[zyb.单据号');

5dbms_output.put(消耗单位:|||zyb.预算单位(');

6dbms_output.put('井号:'||zyb.井号/');

7dbms_output.putC预算金额:zyb.预算金额『");

9dbms_output.putC预算日期:zyb.预算日期/,);

10dbms_output.putC开工日期:zyb.开工日期(,);

11dbms_output.put(,完工日期:zyb.完工日期『,);

12dbms_output.putC施工单位:zyb.施工单位(,);

13dbms_output.putC施工内容:'||zyb.施工内容');

14dbms_output.putC材料费:|||zyb.材料费(');

15dbms_output.putC人工费:'llzyb.人工费『');

16dbms_output.putC设备费:丁zyb.设备费(');

17dbms_output.put('其它费用:,||zyb.其它费用『,);

18dbms_output.put('结算金额:'||zyb.结算金额『');

20dbms_output.put。结算日期:,||zyb.结算日期『,);

21dbms_output.put('入账金额:zyb.入账金额');

23dbms_output.put_line('入账日期:丁zyb.入账日期[');

24endloop;

25*end;

SQL>/

PL/SQL过程已成功完成。

已用时刻:00:00:00.03

利用SQLPLUS进行如下视图练习:

利用SQLPLUS定义一个视图,用于储存作业表和材料费表的全部列。

利用SQLPLUS查询该视图,可任意选择查询条件,构造出2个查询。】

SQL>createviewzyb_zclfb_viewas

2select*fromzyb,zclfb

3*wherezyb.单据号=zclfb.作业项目编号

视图已创建。

已用时刻:00:00:00.32

SQL>select*fromzyb_zclfb_view;

单据号预算单位井号

预算金额预算人预算日期开工日期

完工日期施工单位施工内容材

料费人工费设备费其它费用结算金额结算人

结算日期入账人入账日期入账

金额作业项目编号物码消耗数量

单价

zy2009001采油一矿1队yOOl

10000张三04-5月-0904-5月-09

25-5月-09作业公司作业一队堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wmOOl2001

0

zy2009006112202002y005

10000张三01-7月-0904-7月-09

25-7月-09作业公司作业一队堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wmOOl2001

0

zy2009006112202002y005

10000张三01-7月-0904-7月-09

25-7月-09作业公司作业一队堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0022001

0

zy2009006112202002y005

10000张三01-7月-0904-7月-09

25-7月-09作业公司作业一队堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0032001

0

zy2009006112202002y005

10000张三01-7月-0904-7月-09

25-7月-09作业公司作业一队堵漏70

0025001000140011900李四

26-7月-09王五28-7月-0911900

zy2009006wm0041001

0

zy2009001采油一矿1队yOOl

10000张三04-5月-0904-5月-09

25-5月-09作业公司作业一队堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0022001

0

zy2009001采油一矿1队yOOl

10000张三04-5月-0904-5月-09

25-5月-09作业公司作业一队堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0032001

0

zy2009001采油一矿1队yOOl

10000张三04-5月-0904-5月-09

25-5月-09作业公司作业一队堵漏70

0026001000140012000李四

26-5月-09王五28-5月-0911900

zy2009001wm0041001

0

zy2009002采油一矿2队y003

11000张三01-5月-0904-5月-09

23-5月-09作业公司作业二队检泵60

0016001000240011000李四

26-5月-王五28-5月-0910900

zy2009002wmOOl2001

0

zy2009002采油一矿2队y003

11000张三01-5月-0904-5月-09

23-5月-09作业公司作业二队检泵60

0016001000240011000李四

26-5月-0<王五28-5月-0910900

zy2009002wm0022001

0

zy2009002采油一矿2队y003

11000张三01-5月-0904-5月-09

23-5月-09作业公司作业二队检泵60

00160010002400111000李四

26-5月-09王五28-5月-0910900

zy2009002wm0032001

0

单据号预算单位井号

预算金额预算人预算日期开工日期

完工日期施工单位施工内容材

料费人工费设备费其它费用结算金额结算人

结算日期入账人入账日期入账

金额作业项目编号物码消耗数量

单价

zy2009003采油一矿2队sOOl

10500张三01-5月-0906-5月-09

23-5月-09作业公司作业二队检泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wmOOl2001

0

zy2009003采油一矿2队sOOl

10500张三01-5月-0906-5月-09

23-5月-09作业公司作业二队检泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wm0022001

0

zy2009003采油一矿2队sOOl

10500张三01-5月-0906-5月-09

23-5月-09作业公司作业二队检泵65

002100500140010500李四

26-5月-09王五28-5月-0910400

zy2009003wm0032501

0

zy2009004采油二矿1队s002

12000张三01-5月-0904-5月-09

24-5月-09作业公司作业三队防砂60

0021001000160010700李四

26-5月-09赵六28-5月-0910600

zy2009004wmOOl2001

0

zy2009004采油二矿1队s002

12000张三01-5月-0904-5月-09

24-5月-09作业公司作业三队防砂60

0021001000160010700李四

26-5月-09赵六28-5月-0910600

zy2009004wm0022001

zy2009004采油二矿1队s002

12000张三01-5月-0904-5月-09

24-5月-09作业公司作业三队防砂60

0021001000160010700李四

26-5月-0(赵六28-5月-0910600

zy2009004wm0042001

0

已选择17行。

已用时刻:00:00:00.23

SQL>select单据号,预算单位,预算金额,物码,(消耗数量*单价)

2*fromzyb_zclfb_view

单据号预算单位预算金额物码

(消耗数量*单价)

zy2009001采油一矿1队10000wmOOl

2000

zy200900611220200210000wmOOl

2000

zy200900611220200210000wm002

2000

zy200900611220200210000wm003

2000

zy200900611220200210000wm004

1000

zy2009001米油一矿1队

10000wm002

2000

zy2009001米油一矿队

110000wm003

2000

zy2009001采油一矿1队10000wm004

1000

zy2009002采油一矿2队11000wmOOl

2000

zy2009002采油一矿2队11000wm002

2000

zy2009002采油一矿2队11000wm003

2000

单据号预算单位预算金额物码

(消耗数量*单价)

zy2009003采油一矿2队10500wmOOl

2000

zy2009003采油一矿2队10500wm002

2000

zy2009003采油一矿2队10500wm003

2500

zy2009004采油二矿1队12000wmOOl

2000

zy2009004采油二矿1队12000wm002

2000

zy2009004采油二矿1队12000wm004

2000

已选择17行。

已用时刻:00:00:00.04

利用SQLPLUS定义一个储备过程,要求完成以下功能:

生成某单位(单位能够是采油厂或采油矿或采油队)某段时刻内的成本

运行情形(输入参数:单位代码起始日期终止日期)

输出格式***单位**时刻一**时刻成本运行情形

预算金额结算金额入账金额未结算金额未入账金额

其中未结算金额=预算金额-结算金额未入账金额=结算金额-入账金

(格式是自己弄的,老师的没想出来…)

SQL>CREATEORREPLACEPROCEDUREDW_CBYX(

2DWNO_PARAMINvarchar2,QSRQ_PARAMINDATE,JSRQ_P

ARAMINDATE,

3预算金额_PARAMoutnumber,结算金额_PARAMoutnumber,

4入账金额_PARAMoutnumber,

5未结算金额_PARAMoutnumber,未入账金额_PARAMoutnum

ber)is

6BEGIN

7selectsum(预算金额),sum(结算金额),sum(入账金额),sum(预算金

额-结算金额),

8sum(结算金额-入账金额)

9into预算金额_PARAM,结算金额_PARAM,入账金额_PARAM,未

结算金额_PARAM,

10未入账金额_PARAM

11fromzybwhere

12结算日期〉=qsrq_param

13and结算日期<=jsrq_param

14and

15预算单位in

16(select单位名称fromzdwdmbwhere单位代码likeDWNO_P

ARAM);

17*endDW_CBYX;

过程已创建。

已用时刻:00:00:00.03

SQL>execdw_cbyx(l1220100l,to_date('2009-5-r,'yyyy-mm-dd'),to_date

(2009-5-28?yyyy-mm-dd):预算金额,:结算金额,:入账金额,:未结算金额,:未

入账金额);

PL/SQL过程已成功完成。

已用时刻:00:00:00.01

SQL>print预算金额结算金额入账金额未结算金额未入账金额

预算金额

10000

结算金额

12000

入账金额

11900

未结算金额

-2000

未入账金额

100

SQL>execdw_cbyx(112201002,to_date('2009-5-r,'yyyy-nim-dd'),to_dat

e(2009-5-28?yyyy-mm-dd):预算金额:结算金额,:入账金额,:未结算金额,:未

入账金额);

PL/SQL过程已成功完成。

已用时刻:00:00:00.01

SQL>print预算金额结算金额入账金额未结算金额未入账金额

预算金额

21500

结算金额

21500

入账金额

21300

未结算金额

0

未入账金额

200

SQL>execdw_cbyx(ll2202001,to_date('2009-5-r,'yyyy-mm-dd'),to_dat

e(2009528;yyyy-mm-dd):预算金额,:结算金额,:入账金额,:未结算金额,:未

入账金额);

PL/SQL过程已成功完成。

已用时刻:00:00:00.01

SQL>print预算金额结算金额入账金额未结算金额未入账金额

预算金额

12000

结算金额

10700

入账金额

10600

未结算金额

1300

未入账金额

100

利用SQLPLUS针对zyb定义三个触发器,分别完成以下功能:

对zyb插入一行数据时,自动运算并插入结算金额字段(结算金额=材

料费+人工费+设备费+其它费用)

SQL>createorreplacetriggerinsert_op

2afterinsert

3onzyb

4begin

5updatezyb

6set结算金额=(材料费+人工费+设备费+其它费用);

7*endinsert_op;

触发器已创建

已用时刻:00:00:00.03

SQL>insertintozyb(单据号,预算单位,井号,预算金额,预算人,预算日

期,材料费,人工费,设备费,其它费用)

2valuesCz

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论