设为首页 加入收藏

TOP

Oracle技术_5分钟会用存储过程_存储过程简单实例(包含循环、条件、增改查、参数传入、变量赋值、java调用等)(一)
2014-11-23 17:51:10 】 浏览:506
Tags:Oracle 技术 分钟 存储 过程 简单 实例 包含 循环 条件 参数 传入 变量 java 调用

例子业务功能:

1.根据传入的类型A_TYPE联合查询PROCEDURE_TEST_A表、PROCEDURE_TEST_A_SUB表中的数据,并显示主要内容。

2.根据传入的类型A_TYPE联合查询PROCEDURE_TEST_A表、PROCEDURE_TEST_A_SUB表,并将结果插入PROCEDURE_TEST_B表中。

这里若B_EMAIL字段为空则取传入的默认值。

3.若PROCEDURE_TEST_B表进行了插入操作,则分组统计ASUB_NUMBER字段更新或插入PROCEDURE_TEST_C表中。

里面包含了存储过程常用的大部分操作,包含循环、条件、增改查、参数传入、变量赋值等,话不多说直接上例子:

1.创建所需要的表,并初始化数据

创建4张表,其中3个表需要初始数据,代码如下:
--数据来源表PROCEDURE_TEST_A
CREATE TABLE PROCEDURE_TEST_A
(
  A_ID     VARCHAR2(255) NOT NULL,
  A_USER   VARCHAR2(255),
  A_EMAIL  VARCHAR2(255),
  A_TYPE   VARCHAR2(5),
  CONSTRAINT PROCEDURE_TEST_A PRIMARY KEY (A_ID)  
);
--数据来源表的子表PROCEDURE_TEST_A_SUB
CREATE TABLE PROCEDURE_TEST_A_SUB
(
  ASUB_ID      VARCHAR2(255) NOT NULL,
  ASUB_NAME    VARCHAR2(255),
  ASUB_NUMBER  NUMBER(18,2),
  ASUB_COMMENT VARCHAR2(2000),
  A_ID         VARCHAR2(255),
  CONSTRAINT PROCEDURE_TEST_A_SUB PRIMARY KEY (ASUB_ID),
  CONSTRAINT PROCEDURE_TEST FOREIGN KEY (A_ID) REFERENCES PROCEDURE_TEST_A (A_ID)
);
--数据整合后插入表
CREATE TABLE PROCEDURE_TEST_B
(
  B_ID       VARCHAR2(255) NOT NULL,
  B_USER     VARCHAR2(255),
  B_EMAIL    VARCHAR2(255),
  B_NAME     VARCHAR2(255),
  B_NUMBER   NUMBER(18,2),
  B_COMMENT  VARCHAR2(2000),
  CONSTRAINT PROCEDURE_TEST_B PRIMARY KEY (B_ID)  
);
--数据整合后更新表
CREATE TABLE PROCEDURE_TEST_C
(
  C_USER    VARCHAR2(255) NOT NULL,
  C_NUMBER   NUMBER(18,2),
  CONSTRAINT PROCEDURE_TEST_C PRIMARY KEY (C_USER)  
);
--PROCEDURE_TEST_A初始化
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00006', 'system', '', 'T00');
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00001', 'popkidorc', 'popkidorc@mail.com', 'T01');
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00002', 'csdn', 'csdn@mail.com', 'T01');
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00003', 'pop', '', 'T01');
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00004', 'kid', 'kid@mail.com', 'T01');
INSERT INTO PROCEDURE_TEST_A
  (A_ID, A_USER, A_EMAIL, A_TYPE)
VALUES
  ('AID00005', 'orc', 'orc@mail.com', 'T01');
--PROCEDURE_TEST_A_SUB初始化
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00001', 'oralce_blog', 9.90, 'oralce博客', 'AID00001');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00002', 'sql_blog', 1.50, 'sql博客', 'AID00001');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00003', 'swift_blog', 1.00, 'swift博客', 'AID00001');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00004', 'game_blog', 6.00, 'game博客', 'AID00003');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00005', 'sport_blog', 5.55, 'sport博客', 'AID00003');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00006', 'kid_blog', 99.00, 'kid博客', 'AID00004');
INSERT INTO PROCEDURE_TEST_A_SUB
  (ASUB_ID, ASUB_NAME, ASUB_NUMBER, ASUB_COMMENT, A_ID)
VALUES
  ('ASUBID00007', 'zero_blog', 0.00, 'zero博客', 'AID00005');
INSERT INTO PROCEDURE_T
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle数据库的连接 下一篇DB2日志文件归档脚本db2uext2的ba..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目