10、oracle下PL/SQL编程基础

ORACLE下的PL/SQL编程基础

PL/SQL语言是程序化程序设计语言,块是PL/SQL编程中的基本结构,其优点在于支持SQL、支持面向对象编程、性能好、可移植性、与sql集成、安全性高等。

1.基本语法

1.1 基本语法结构

[set severoutput on]

declare
    变量,标记,用户定义的数据,游标的声明
begin
    主体部分,只能放DML语句
exception
    异常处理部分
end

1.2常量声明

-- := 是赋值的意思

<常量名> constant <数据类型> :=<值>;

1.3 变量声明

-- 语法结构

DECLARE
    变量名 类型 := 默认值;

-- 基本变量类型

Char、boolean、number
-- 引用型变量
my_name emp.ename%type

my_name的类型与emp表中的ename字段的类型一样

1.4打印语句

dbms_output.put_line(打印内容);

1.5连接符号

||

2.执行块部分

2.1赋值

-- 提示输入语句,用户输入一个值,将输入的值赋给age,MESSAGE是提示内容,age可以不用声明

accept age prompt ‘MESSAGE’
-- 在begin和end之间接收数据,(nn需要提前声明)
nn:=&age

-- 将查询结果赋给变量,使用into关键字
select id,name into sid,sname from person where id=1;

2.2流程控制

2.2.1 if语句

if ... then
elsif ... then
else
end if

2.2.2 case语句

有逻辑的在数值中做出选择

case var when ... then
when ... then
end

case when else end语句

declare
    i int:=0;
begin
    i:=(case when 1=1 then 111 else 222 end);
    dbms_output.put_line(i);
end;

在查询中使用case

select (case when id=2 then ‘2222’ else ‘333’ end) from t6;

2.2.3 loop语句

差不多相当于大括号,循环控制,用判断语句执行

Loop
<程序块>
if <条件表达式> then
exit
end if
<程序块2>
end loop;

loop...exit when...end

loop
<程序块1>
exit when<表达式>
<程序块2>
end loop;

2.2.4 while语句

while ... loop ... end loop
当while为真时循环

declare

  Varnum INTEGER:=1;

  Varnum INTEGER:=0;

Begin

   While  varNum<=4

   Loop

      varSum:=varNum+varSum;

      varNUm:=varNum+1;

   End loop

End;

2.2.5 for语句

for <循环变量> in <初始值> ..<终止值> loop
<程序块>
end loop

3.异常处理

3.1 语法结构

exception
when<异常情况名>then
<异常处理代码>
when<异常情况名>then
<异常处理代码>
when others then
<异常处理代码>

set serveroutput on; -- 打开打印
begin
    insert into person values('','');
    insert into person values('','');
commit;
  exception
    when others then
      rollback;
      dbms_output.put_line(SQLCODE||SQLERRM);
end;

3.2自定义异常

declare
myException EXCEPTION;
begin
   update person set ids=''
   if sql%notfound then
        ----
   end if;
   exception
      when others then
      ---
end

4.自定义数据类型

4.1 自定义记录数据类型

type 类型名称 is record
(
变量名称1 数据类型,
变量名称2 数据类型,
变量名称2 数据类型
);

4.2自定义枚举类型

type charset is table of char;
answ charset :=charset('a','b','c','d');

4.3 利用表或者列来便捷的定义数据类型

变量名 表名%rowtype
变量名 表名.列%type

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值