Oracle之PL/SQL编程

本文详细介绍了PL/SQL的基础语法,包括声明、执行和异常处理部分。讲解了变量定义,特别是引用类型%type和记录类型%rowtype的使用。演示了条件判断、while循环、for循环和loop循环的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、语法

    DECLARE  
            --声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数
        变量名 变量类型
        变量名 变量类型 := 初始值;
     BEGIN
            -- 执行部分:  过程及SQL语句, 即程序的主要部分
     EXCEPTION
            -- 执行异常部分: 错误处理
     END;
    declare
        i varchar2(10) := 'mark';          
        begin
          dbms_output.put_line(i);  --相当于Java中的System.out.println();
        end;

二、变量定义(引用类型%type和记录类型%rowtype)

    vsal emp.sal%type;  -- 定义引用类型变量名称为vsal(类型与emp表中sal字段类型一致)
    vrow emp%rowtype;   --定义记录型变量名称为vrow(类型与emp表中行记录一致)
    --查询7369的工资,并且打印出来
    declare
        vsal emp.sal%type;
     begin
        --将查询出的结果赋值给vsal
        select sal into vsal from emp where empno = 7369;
        dbms_output.put_line(vsal);
     end;
    declare
        vrow emp%rowtype;      
     begin
        select * into vrow from emp where empno = 7369;
        dbms_output.put_line('姓名:'||vrow.ename || '工资'|| vrow.sal);
     end;

三、条件判断 

    if 条件1 then 
            操作1
    elsif 条件2  then 
            操作2 
    elsif 条件3  then 
            操作3
    --其他elsif 条件n  then 
            操作n
    else 
            操作n+1
    end if;
  --根据不同年纪,输出相关内容
  declare
    vage number := &aaa;--  &名称,PL/SQL会弹出一个变量框输入弹窗,可以向里面输入数据
    begin
      if vage<18 then
            dbms_output.put_line('小孩');
      elsif  vage>=18 and vage<40 then
            dbms_output.put_line('青年');
      elsif  vage>=40 and vage<60 then
            dbms_output.put_line('中年');
      else 
            dbms_output.put_line('老年');
      end if;
     end;

四、循环 

1.while

    --while 循环
    while 条件 loop
        
    end loop;
--输出1-10
declare
    i number := 1;
    begin
      while i<=10 loop
        dbms_output.put_line(i);
        i := i+1;
      end loop;
     end;

2.for

    --for循环,reverse表示倒叙
    for 变量  in [reverse] 起始值..结束值 loop
        
    end loop;
    --输出1-10
    declare
        begin
        for i in  1..10 loop
            dbms_output.put_line(i);
        end loop;
        end;

 3.loop

    --loop循环  
    loop
        exit when 条件
    end loop;
    --输出1~10
    declare
        i number :=1;
     begin
        loop
            exit when i>10;
            dbms_output.put_line(i);  
            i := i+1;
        end loop;
     end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值