Oracle PL/SQL编程语法

Posted 苹果园dog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
---------------------------------------------------------------------------------------------
  
  
  
  
  
  
  
  

 

以上是关于Oracle PL/SQL编程语法的主要内容,如果未能解决你的问题,请参考以下文章

oracle PL/SQL编程语言之游标的使用

oracle PL/SQL编程语言之游标的使用

Oracle——PL/SQL

sql developer哪个版本

Oracle之PL/SQL编程_流程控制语句

oracle pl/sql 基础