`
Jonny-java
  • 浏览: 12555 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

PL/SQL编程

 
阅读更多
--打开输出流
set serveroutput on;

--定义一个过程
create or replace procedure scott_pro1(sname varchar2,sno number) is
--定义变量部分

begin
--执行部分
update myemp set empno=sno where ename=sname;
--结束
end;


--调用过程
exec scott_pro1('SMITH',6789);
call scott_pro1('SMITH',6788);



declare
--税率  :=赋值符号
c_tax_rate number(3,2) := 0.03;
--用户名
v_ename emp.ename%type;
--工资
v_sal number(7,2);
--所得税
v_tax_sal number(7,2);
begin
--执行部分
select ename,sal into v_ename,v_sal from emp where empno=&aa;
--计算所得税
v_tax_sal := v_sal * c_tax_rate;
dbms_output.put_line('用户名:'||v_ename||' 工资:'||v_sal||' 所得税:'||v_tax_sal);
end;


declare
--定义一个记录类型
type emp_record_type is record(name emp.ename%type,salary emp.sal%type,title emp.job%type);
--定义一个记录类型变量
v_record emp_record_type;
begin
select ename,sal,job into v_record from emp where empno=&aa;
dbms_output.put_line(v_record.name);
end;



declare
--定义一个游标类型
type scott_emp_cursor is ref cursor;
--定义一个游标变量
test_cursor scott_emp_cursor;
--定义变量
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
  --执行
  --把test_cursor和select结合起来
open test_cursor for select ename,sal from emp where deptno=&aa;
--循环取出
loop
  fetch test_cursor into v_ename,v_sal;
  --判断test_cursor是否为空
  exit when test_cursor%notfound;
  dbms_output.put_line(v_ename||' : '||v_sal);
  end loop;
end;


--控制语句语法
--1、循环loop,请看上个游标例子
--2、if ... then ... end if;
create or replace procedure fsl_pro1(fsl_name varchar2) is
v_sal emp.sal%type;
begin
  select sal into v_sal from emp where ename=fsl_name;
  if v_sal<2000 then
    update emp set sal=v_sal+v_sal*0.1 where ename=fsl_name;
    end if;
    end;

--3、if ... then ... else ... end if;
create or replace procedure fsl_pro2(fsl_name varchar2) is
v_comm emp.comm%type;
begin
  select nvl(comm,0) into v_comm from emp where ename=fsl_name;
  if v_comm<>0 then
    v_comm := v_comm+100;
    update emp set comm=v_comm where ename=fsl_name;
    else
     v_comm := v_comm+200;
     update emp set comm=v_comm where ename=fsl_name;
     end if;
    end;
   
--4、if ... then ... elsif .... then ... else ... end if;

--5、while ... loop ... end loop;





分享到:
评论

相关推荐

    PL/SQL编程基础知识

    ### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库...

    第16章Pl/sql编程基础

    pl/sql编程基础教程,内容丰富,适合初学者学习。

    PL/SQL编程(电子版)

    【PL/SQL编程】是Oracle数据库中用于数据库管理和应用程序开发的一种高级过程语言,它结合了SQL查询语言的威力和高级编程语言的灵活性。本章详细介绍了PL/SQL的基础知识,帮助初学者快速掌握该语言。 **4.1 PL/SQL...

    oracle实验三PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库管理系统中的重要组成部分,它是一种过程化语言,允许开发者编写复杂的数据库应用程序。在本次实验中,我们将重点学习PL/SQL的基本语法、控制结构、复合数据类型以及异常处理技术。 ...

    PL/SQL编程教程

    PL/SQL编程教程电子书,全册,完整版。。。。

    Oracle PL/SQL编程及最佳实践

    Oracle PL/SQL 编程及最佳实践 Oracle PL/SQL 是一种高级编程语言,用于开发 Oracle 数据库中的存储过程、函数和触发器。PL/SQL language 提供了强大的编程能力,可以实现复杂的业务逻辑,并且与 Oracle 数据库紧密...

    精通Oracle 10g PL/SQL编程

    PL/SOL是Oracle特有的编程语言,它不仅具有过程编程语言的基本特征(循环、条件分支等),而且还...本书不仅适合于PL/SQL初学者,而且也适合于有经验的PL/SQL编程人员,本书还可以作为Oracle培训班的教材或者辅助材料。

    oracle pl/sql 编程

    《Oracle Database 10g PL/SQL编程》一书由Scott Urman、Ron Hardman和Michael McLaughlin共同编写,由McGraw-Hill/Osborne出版,是Oracle数据库编程领域的一部经典之作。该书深入浅出地介绍了Oracle Database 10g...

    Oracle_PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库系统中的一个核心组成部分,它扩展了SQL的语法,使得数据库管理及应用程序开发更具灵活性和可编程性。PL/SQL融合了SQL查询和控制流语句,提供了处理复杂业务逻辑的能力。 PL/SQL的...

    基本PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库系统中的一个关键组成部分,它是一种强大的过程化编程语言,用于在数据库中执行复杂的逻辑和操作。本指南旨在为初学者提供一个基础的PL/SQL编程入门,帮助他们理解并掌握这个强大的...

    oracle实验五 PL/SQL编程

    ### Oracle 实验五 PL/SQL编程 #### 实验目的 本次实验旨在使学习者深入了解PL/SQL编程的基础知识与实际应用。具体目标包括: 1. **掌握PL/SQL的数据类型和基本语法**:理解PL/SQL中不同数据类型的定义与使用方法...

    精通oracle10g PL/SQL编程

    本书《精通Oracle10g PL/SQL编程》为读者提供了一个系统性的学习路径,从基础知识到高级应用,从具体技巧到最佳实践,涵盖了PL/SQL编程的方方面面。通过本书的学习,读者将能够有效地提高Oracle数据库编程的效率和...

    精通oracle 10g pl/sql编程

    《精通Oracle 10g PL/SQL编程》是一本专门针对Oracle 10g版本的PL/SQL编程语言的权威指南书籍。Oracle 10g是甲骨文公司(Oracle Corporation)推出的数据库管理系统(DBMS)的一个重要版本,而PL/SQL是Oracle的存储...

    Oracle PL/SQL编程详解

    Oracle PL/SQL编程详解是Oracle数据库开发人员必须掌握的技术之一。Oracle PL/SQL是一种用于Oracle数据库系统的程序设计语言,它是SQL语言的扩展,包含了许多能增加程序可读性和模块化的特性。PL/SQL代码被编译成...

    Oracle 11g pl/sql编程

    根据提供的文件信息,以下是对Oracle 11g PL/SQL编程知识点的详细说明: 标题中的“Oracle 11g PL/SQL编程”指出了文档的主旨,即介绍Oracle数据库的第11g版本中PL/SQL(过程式SQL)编程的技术细节和实践应用。PL/...

Global site tag (gtag.js) - Google Analytics