Oracle PL/SQL编程语法

--plsql块结构,计算a,b的和
declare
 a int:=10;
 b int:=20;
 c int;
 begin
   c:=a+b;
   dbms_output.put_line(c);
   end;
--%type数据类型,输出员工名称和职务信息
declare
var_ename scott.emp.ename%type;
var_job scott.emp.job%type;
begin
  select ename,job
  into var_ename,var_job
  from scott.emp
  where empno=7369;
  dbms_output.put_line(var_ename||‘的职务是:‘||var_job);
  end;
--record类型
declare
type emp_type is record
(
     var_ename varchar2(50),
     var_job varchar2(20),
     var_sal number
);
empinfo emp_type;
begin
  select ename,job,sal
  into empinfo
  from scott.emp
  where empno=7369;
  dbms_output.put_line(empinfo.var_ename);
  end;
--%rowtype数据类型
declare
rowVar_emp scott.emp%rowtype;
begin
  select *
  into rowVar_emp
  from scott.emp
  where empno=7369;
    dbms_output.put_line(rowVar_emp.ename);
    end;
----------------------------------------------------------------流程控制------------------------------------------------------------
--if ...then 比较字符串长短,输出长的字符串
declare
 var_name1 varchar2(50);
 var_name2 varchar2(50);
 begin
   var_name1:=‘dog100‘;
   var_name2:=‘dog232332‘;
   if
     length(var_name1)>length(var_name2)
     then
       dbms_output.put_line(var_name1);
       else
         dbms_output.put_line(var_name2);
         end if;
         end;

 --case 输出季节的月份
 declare
 season int:=2;
 info varchar2(100);
 begin
   case season
     when 1 then
       info:=‘1,2,3‘;
       when 2 then
         info:=‘4,5,6‘;
         when 3 then
           info:=‘7,8,9‘;
           when 4 then
             info:=‘10,11,12‘;
             else
               info :=‘dog‘;
               end case;
               dbms_output.put_line(info);
  end;
-------------------------------------------------------------------循环语句---------------------------------------------------------
--loop 计算1到100自然数之和
declare
sum_i int:=0;
i int:=0;
begin
  loop
    i:=i+1;
    sum_i:=sum_i+i;
    exit when i=100;
    end loop;
    dbms_output.put_line(sum_i);
    end;

--while
declare
sum_i int:=0;
i int:=0;
begin
  while
    i<=100
    loop
      sum_i:=sum_i+i;
      i:=i+1;
      end loop;
    dbms_output.put_line(sum_i);
    end;
--for
declare
sum_i int:=0;
begin
  for i in reverse 1..100
    loop
      sum_i:=sum_i+i;
      end loop;
    dbms_output.put_line(sum_i);
    end;
--------------------------------------------------------------------游标-------------------------------------------------
--显式游标,读取雇员信息
 declare
 cursor cur_emp(var_job in varchar2:=‘SALESMAN‘)
 is select empno,ename,sal
 from scott.emp
 where job=var_job;
 type record_emp is record
 (
      var_empno scott.emp.empno%type,
      var_ename scott.emp.ename%type,
      var_sal scott.emp.sal%type
 );
 emp_row record_emp;
 begin
   open cur_emp(‘MANAGER‘);
   fetch cur_emp into emp_row;
   while cur_emp%found
     loop
      dbms_output.put_line(emp_row.var_ename);
      fetch cur_emp into emp_row;
      end loop;
       close cur_emp;
       end;
--隐式游标,工资上调20%
begin
update scott.emp
set sal=sal*(1+0.2)
where job=‘SALESMAN‘;
if sql%notfound then
  dbms_output.put_line(‘No‘);
  else
  dbms_output.put_line(sql%rowcount);
  end if;
  end;
--通过for循环语句循环游标,隐式游标
begin
  for emp_record in (select * from scott.emp where job=‘SALESMAN‘)
    loop
      dbms_output.put_line(emp_record.ename);
      end loop;
      end;
--通过for循环语句循环游标,显式游标
 declare
 cursor cursor_emp is
 select * from scott.emp where job=‘SALESMAN‘;
 begin
   for emp_record in cursor_emp
     loop
      dbms_output.put_line(emp_record.ename);
      end loop;
      end;
---------------------------------------------------------------------------------------------
时间: 2024-10-13 07:32:33

Oracle PL/SQL编程语法的相关文章

ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE PL/SQL编程之八:把触发器说透 得到了大家的强力支持,感谢.接下来再下猛药,介绍下一篇,大家一定要支持与推荐呀~!我也才有动力写后面的.   本篇主要内容如下: 6.1 引言 6.2 创建函数 6.3 存储过程 6.3.1 创建过程 6.3.2 调用存储过程 6.3.3 AUTHID 6.3.4 

[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]

[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)

原文:[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆) [推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) 得到了大家的强力支持与建议,万分感谢.接下来介绍下一篇:oracle pl/sql异常处理部分,还望大家一定

[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)

原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) 得到了大家的强力支持,感谢.接下来再下猛药,介绍下一篇,大家一定要支持与推荐呀~!我也才有动力写后面的. 本篇主要内容如下: 4.1 游标概念 4.1.1 处理显式游标 4.1.2 处理

[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ——通过知识共享树立个人品牌. 继上五篇: [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不

[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下) ——通过知识共享树立个人品牌. 继上六篇: [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程之四:把游标说透(

[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天才在于积累!) ——通过知识共享树立个人品牌.   继上七篇:            [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)            [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之

ORACLE PL/SQL编程之八(一): 把触发器说透

本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INSTEAD OF)触发器 8.2.3 创建系统事件触发器 8.2.4 系统触发器事件属性 8.2.5 使用触发器谓词 8.2.6 重新编译触发器 8.3 删除和使能触发器 8.4 触发器和数据字典 8.5   数据库触发器的应用举例 触发器是许多关系数据库系统都提供的一项技术.在O

【转】[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)

[推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) 得到了大家的强力支持与建议,万分感谢.接下来介绍下一篇:oracle pl/sql异常处理部分,还望大家一定要支持与推荐呀~! 本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常