`

<PLSQL 入门>~

阅读更多

declare
begin
exception
end

 

 

SQL> set serveroutput on
SQL> begin
  2         dbms_output.put_line('Hello world!');
  3  end;
  4  /
Hello world!

 

 

 SQL>  declare
  2    v_name varchar2(20);
  3    begin
  4       v_name := 'myname';
  5       dbms_output.put_line(v_name);
  6    end;
  7    /
myname

 

SQL> declare
  2         v_num number :=0;
  3  begin
  4         v_num := 2/v_num;
  5         dbms_output.put_line(v_num);
  6  exception
  7         when others then
  8                dbms_output.put_line('error');
  9  end;
 10  /
error

 

变量声明的规则

        (1) 变量不能是保留字        通常: v_

        (2) 第一个字符必须是字母

        (3) 变量名长度小于30

        (4) 不能与表名,列名相同

        (5) 每行只能声明一个变量

 

常用变量类型

       (1) binary_integer          整数,主要用于计数

       (2) number                    数字类型

       (3) char,varchar2

       (4) date

       (5) long

       (6) boolean                  true, false,null

 

注释

/* ... */

//

 

 %type

 

v_empno2 em.empno%type;

v_empno3 v_empno2%type;

 

Table  变量类型

    type   t_table_emp_empno is table of emp.empno%type index by binary_integer;

    v_empnos t_table_emp_empno;

 

Record 变量类型

     type t_record_dept is record

         (      

                 deptno dept.deptno%type,

                 dname dept.dname%type,

                 loc        dept.loc%type

         );

     v_temp    t_record_dept;

 

     v_temp      dept%rowtype

 

Select 语句

    declare

          v_ename emp.ename%type;

          v_sal       emp.sal%type;

     begin

          select ename,sal into v_ename,v_sal from emp where empno=7369;

          dbms_output.put_line(v_ename);

     end;/

必须返回一行记录,否则报错

         v_emp   emp%rowtype

         select * into v_emp from emp where empno=7369;

 

Insert , update语句

 

         insert into dept2 values (v_deptno,v_dname,v_loc);

         commit;

 

  dbms_output.put_line(sql%rowcount) || '记录被影响'

 

 DDL语句

 begin

  execute immediate  'create table T(nnn varchar2(20))';

 end;/

 

 IF 语句

      if (v_sal < 1200) then

             xxx;

     elseif (v_sal < 2000) then

          xxx;

      else

          xxx;

      end if;

 

 循环语句

       loop

             xxx;

              i := i + 1;

              exit when (i >= 11);

       end loop;

 

 

       while j < 11 loop

             j := j + 1;

        end loop;

 

 

       for k in 1..10 loop

             xxx;

       end loop;

 

       for k in reverse 1..10 loop

             xxx;

       end loop;

 

 

  异常处理

      

        exception

             when   too_many_rows then

                   xxxxx;

             when   no_data_found then

                   xxxxx;

             when   others then

                   xxxxx;

  

   游标

     declare

        cursor c is select * from emp;

        v_emp c%rowtype

      begin

            open c;

            loop

               fetch  c into v_emp;

                   exit when (c%notfound);

                   dbms_output.put_line(v_emp.ename);

            end loop;

            close c:

       end;

 

     4个属性 

      c%isopen, c%notfound,c%found,c%rowcount

 

      for v_emp in c loop

             xxx;

      end

 

     游标自动打开,关闭,自动fetch

 

    带参数的游标

   

        declare

            cursor c (v_deptno   emp.deptno%type, v_job emp.job%type)

            is   select xxx where xxx=xxx,xxx

 

        begin

               for v_temp in c(30,'CLERK') loop

                     xxx;

               end loop;

        end;

 

     可更新的游标

 

  declare

            cursor c (v_deptno   emp.deptno%type, v_job emp.job%type)

            is   select xxx where xxx=xxx,xxx  for update

 

           update emp2 set sal = sal * 2 where current of c;

           delete from emp2 where current of c;

         

 Store proceduer

 

     create or replace procedure p

     is  (取代declare)

         plsql code

    

    执行: exec p;

              或者

                 begin

                     p;

                 end;

 

 

   带参数的存储过程

             

         create or replace procedure p (v_a in number, v_b number, v_ret out number, v_temp in out number)

         is

 

             plsql code

 

   

        in: 传入参数    默认是in

        out: 传出参数

                 

     declare

         v_a number :=3;

         v_b number :=4;

         v_ret number;

         v_temp number :=5;

      begin

             p(xx,xx,xx,xx);

           xxx;

       end;

 

   SQL> show error                 显示存储过程的编译错误

 

 

 函数function

     

       create or replace function f (v_sal number) return number

       is

 

           函数体

 

       v_ret := f();

 

       select f() from dual;

 

  Trigger 触发器

     

      create or replace trigger trig

      after insert or update or delete on emp for each row

     begin

           if inserting then

              xxx

           .................................

 

     end

 

       

    :New.deptno       :Old.deptno

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    PLSQL入门教程(中文版)

    本入门教程针对PLSQL的新手,旨在帮助读者快速掌握其基本概念、语法和应用。 1. **PLSQL的基本结构** PLSQL由三部分组成:声明部分、执行部分和异常处理部分。声明部分定义变量、常量、游标和过程;执行部分包含...

    《Oracle PLSQL 从入门到精通》.zip

    本资料《Oracle PLSQL 从入门到精通》旨在帮助初学者和进阶者全面掌握这一语言,通过深入学习,你可以更好地管理和操作Oracle数据库。 PLSQL由三部分组成:声明部分、执行部分和异常处理部分。声明部分用于定义变量...

    PLSQL入门知识讲解

    讲解PLSQL的一些相关知识,帮助新手入门学习了解PLSQL

    RubyonRails九日学习计划

    RubyonRails九日学习计划(含相关软件及书籍)时间 内容 目的&lt;br&gt;第一天 学习oracle 基本工具掌握 plsql ,sql语言,范式,索引,数据库安全,数据备份,导入导出。 熟练掌握SQL语言&lt;br&gt;第二天 1. ruby 语言历史和...

    PLSQL PDF入门

    这本书《PLSQL入门》以清晰的条理和简洁的版面设计,为初学者提供了一个理想的起点,帮助读者快速掌握PLSQL的基础知识。 一、PLSQL基础 PLSQL由三个主要部分组成:声明部分、执行部分和异常处理部分。声明部分用于...

    PLSQL入门基础

    对于需要使用PLSQL的朋友,可以是个不错的入门文档

    深入浅出的PLSQL入门教程(中文版)

    Les1-声明变量.pdf Les2-PLSQL中的可执行语句.pdf Les3-与Oracle服务器之间的交互.pdf Les4-控制结构.pdf Les5-复合数据类型的使用.pdf Les6-显式游标的使用.pdf Les7-高级显式游标.pdf Les8-异常处理.pdf

    Oracle PLSQL 从入门到精通

    本资料《Oracle PLSQL 从入门到精通》将引领读者深入理解这一强大的工具。 首先,入门阶段,你需要了解PLSQL的基本结构,包括声明部分(DECLARATION)、执行部分(EXECUTION)和异常处理部分(EXCEPTION)。声明...

    plsql教程大全(语法入门、操作plsql、存储过程、函数、触发器、游标、包、返回类型)

    语法入门、操作plsql、存储过程、函数、触发器、游标、包、返回类型;一个execle表轻松搞定。

    PLSQL入门学习宝典

    本文档详细讲解了sql的安装过程,理论知识等,对初学者是一个很好的入门学习资料。希望通过学习能够熟练掌握PLSQL的数据库操作。

    PLSQL基础入门教程-必看

    作为PLSQL基础入门教程,这篇文章旨在为读者提供一个系统的PLSQL入门指南。从PLSQL的基本概念到高级应用,本教程涵盖了PLSQL的所有方面,为读者提供了一个全面的学习体验。 首先,让我们从PLSQL的基本概念开始。...

    PLSQL基础入门

    PLSQL基础入门 PLSQL是Oracle数据库中的一种过程语言,用于编写存储过程、函数和触发器。PLSQL的基础知识点包括变量声明、数据类型、控制结构、异常处理等。 一、基础概念 1. PL/SQL是不区分大小写的,除非是由...

    pl/sql教材(plsql 基础入门教材)

    变量的定义格式一般为 `&lt;variablename&gt; [CONSTANT] &lt;datatype&gt; [[NOT NULL] {DEFAULT|:=} &lt;expression&gt;]`,其中CONSTANT表示常量,需赋予初始值,NOT NULL表示变量不可为空,并需赋予初始值。Oracle提供多种数据类型...

    PLSQL入门存储过程(详细注释案例).pdf

    根据提供的文件信息,我们可以深入探讨以下几个关键的知识点: ### 1. PL/SQL 语言简介 PL/SQL(Procedure Language / SQL)是Oracle为增强其数据库功能而开发的...希望这些内容能够帮助初学者快速入门 PL/SQL 编程。

    Oracle9i PLSQL 入门到精通读书笔记

    本书“Oracle9i PLSQL 入门到精通”旨在帮助读者从基础开始,逐步掌握这一强大的工具。 1. **PLSQL基本概念** - PLSQL由三部分组成:声明部分、执行部分和异常处理部分。 - 声明部分用于定义变量、常量、游标、...

    Oracle_PlSql入门手册[归类].pdf

    =`(或`&lt;&gt;`)、`&gt;`, `&lt;`, `&gt;=`, `&lt;=`, `IN`, `BETWEEN`, `LIKE`, `NOT IN`, `IS NULL`, `IS NOT NULL`是常用的操作符。例如,`IN`和`NOT IN`用于指定值的集合,`BETWEEN`和`NOT BETWEEN`用于指定范围,`LIKE`和`NOT ...

    plsql从入门到精通随书源码

    "PLSQL从入门到精通随书源码"是一份宝贵的资源,它能帮助学习者通过实际操作来加深对PL/SQL的理解。下面将详细阐述PL/SQL的基础知识及其重要特性。 1. PL/SQL概述: PL/SQL(Procedural Language/Structured Query ...

    PLSQL入门.pdf

    ### PL/SQL 入门 #### 1. PL/SQL 概述 - **定义**:PL/SQL (Procedure Language for SQL) 是 Oracle 公司对 SQL 语言的一种扩展,它是一种过程化语言,结合了 SQL 的数据操作能力与传统程序设计语言的控制结构。 - ...

    PLSQL基础入门手册

    这篇“PLSQL基础入门手册”正是针对初学者设计的,旨在帮助他们快速掌握PLSQL的基础知识和核心概念。 首先,我们要理解PLSQL的基本结构,它由三部分组成:声明部分、执行部分和异常处理部分。声明部分定义变量、...

Global site tag (gtag.js) - Google Analytics