前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入门级Oracle存储过程 | oracle

入门级Oracle存储过程 | oracle

作者头像
AlicFeng
发布2018-06-08 15:27:17
6810
发布2018-06-08 15:27:17
举报
代码语言:javascript
复制
-- 第一个存储过程 hello world
CREATE OR REPLACE PROCEDURE sayHello
AS
  word VARCHAR2(10) := 'hello';
  BEGIN
    dbms_output.put_line(word);
  END;
--Execute
BEGIN
  sayHello();
END;


-- 创建学生表
CREATE TABLE student (
  uuid     NUMBER(6, 0) PRIMARY KEY,
  username VARCHAR2(10),
  tuition  NUMBER(6, 0)
);

-- insert values
INSERT INTO student (uuid, username, tuition) VALUES (10001, 'alic', 5000);
INSERT INTO student (uuid, username, tuition) VALUES (10002, 'feng', 8000);
SELECT *
FROM student;

-- 实现带参数的存储过程
-- 学生学费涨价100 前后的金额
CREATE OR REPLACE PROCEDURE upTuition(id IN NUMBER)
AS
  curTuition student.tuition%TYPE;
  BEGIN
    select tuition into curTuition from student where uuid=id;
    update student set tuition=tuition+1000 WHERE uuid=id;

    -- print
    DBMS_OUTPUT.PUT_LINE('before:'||curTuition||';after:'||(curTuition+1000));
  END;

--Execute
BEGIN
  upTuition(10001);
END;


-- 存储函数
-- 根据学生的id查询学生的名字
create or replace function getStuNameById(id in number)
  return varchar2
  as
  usr student.username%type;
  BEGIN
    select username into usr from student where uuid=id;
    return usr;
  END;


-- in out 参数的存储过程
-- 根据学生的uuid获取姓名和学费
create or replace procedure getStuMsg(id in number,stuName out varchar2,stuTuition out number)
  as
  begin
    select username,tuition into stuName,stuTuition from student;
  end;


-- 使用光标 包头 包体
-- 获取所有的学生的所有信息
-- 包头
CREATE OR  REPLACE PACKAGE stuPackage
  AS
  TYPE stuList IS REF CURSOR ;
  PROCEDURE queryStuList(students out stuList);
  END stuPackage;
-- 包体
CREATE OR REPLACE PACKAGE BODY stuPackage
  AS
  PROCEDURE queryStuList(students out stuList)
    AS
    BEGIN
      -- 打开光标
      OPEN students FOR SELECT * FROM student;
    END queryStuList;
  END stuPackage;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档