存储过程学习

PL/SQL的基本概念

​ PL/SQL(Procedure Language/SQL),是Oracle对Sql语言的过程化拓展,是一门语言,可以让SQL具备逻辑,具有过程处理能力。

基本语法结构

[declare --声明变量]

begin

[plsql代码]

[exception --异常处理]

end;

PL/SQL语法

declare

1.–语法:变量 变量类型或者变量 变量类型 := 赋值;

eg: person varchar2(20) := ‘一个人’;

2.–语法声明常量:变量名 constant关键字 变量类型 必须给常量赋值,就和java中的final修饰一样。

declare

person varchar2(20) := '一个人';

sal constant number := 200;

begin

--输出语句

dbms_output.put_line(person);

end;

在这里插入图片描述

带for循环的存储过程
SQL> create or replace procedure test is
  2  x number;
  3  begin
  4          x :=0;
  5          if x >0 then
  6           begin
  7          x := 0 - x;
  8          end;
  9      end if;
 10      if x = 0 then
 11         begin
 12          x := 1;
 13      end;
 14      end if;
 15  end test;
 16  /

实际应用

PROMPT
PROMPT 表TP_DOC_URL添加PID字段 
PROMPT ==========================
PROMPT
DECLARE
  V_COUNT INTEGER;
BEGIN
  SELECT COUNT(1) INTO V_COUNT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TP_DOC_URL' AND COLUMN_NAME = 'PID';
  IF V_COUNT = 0 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE TP_DOC_URL ADD PID NUMBER(16)';
    -- Add COMMENTs to the columns 
    EXECUTE IMMEDIATE 'COMMENT ON COLUMN TP_DOC_URL.PID IS ''报告上传人''';
  END IF;
END;
/
在这里插入代码片

附mysql版本存储过程

drop PROCEDURE add_col_homework; -- 删除该存储过程
CREATE PROCEDURE `add_col_homework`()-- 新增一个存储过程

BEGIN

IF not EXISTS (SELECT column_name FROM information_schema.columns WHERE table_name = 'ot_user' and column_name = 'sfzzh')

-- 判断是否存在字段

THEN

-- 不存在则新增字段

ALTER TABLE ot_stamp ADD COLUMN `sfzzh` int(10);

END IF;

END;

call add_col_homework();-- 运行该存储过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值