`
jinchun1223
  • 浏览: 259489 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

plsql基本语法

阅读更多
--plsql基本结构

 

declare

 

   v_Sex number;

   v_AuthorCode char(6);

   v_Arcount number;

   

   begin 

      select author_code,sex

      into v_AuthorCode,v_Sex from auths  where name='阿牛';

      

      if v_Sex=0  then 

      

      select count(article_code) into v_Arcount from  article

      

      where author_code='A0001';

      

      end if;

      

      end;

      -- 

      

      --记录类型

      

      declare 

        type A_Record is record( Auhoor_code char(6),username varchar2(10),sex number(1));

        

        v_Author A_Record;

        

        --

        

        

        

        --对象类型

        

        create or replace type AuthorObj as object(

        

        Author_code char(6),

        Name varchar2(10),

        Sex number(1),

        birthdate date,

        address varchar2(30)

        );

        ---

        

        

        --常量的定义

        

        declare 

        

           sex_male constant int :=1

           sex_female constant int :=0;

           

           

         ----

         

         ----循环结构

         

         declare

          

            v_loopCounter binary_integer:=1;

         

         begin  

           loop 

             insert into table_a(num_col)  values(v_loopCounter);

           

           v_loopCounter:=v_loopCounter+1;

           

           exit when v_loopCounter>100;

           

           end loop;

           end;

        ----

        

        ---for循环

        

        declare 

        

        v_loopCounter binary_integer:=1;

        

        begin v_loopCounter in 1..100 

        

           loop 

           

             insert into table_a(num_col)  values(v_loopCounter);

             

             end loop;

             

             end;

             

         ---------------

         

         ---------游标

         --游标用来查询数据库中的数据(例如select 语句返回的记录),并对 查询的结果进行处理。游标分为显式游标

         --和隐式游标两种。通过游标,可以对 查询结果中的数据一条一条进行处理。

         

         declare            

         

           v_name varchar2(10);

           v_salary number(8,2);

           

           --游标的定义。

            cursor  c_auths is 

            

              select name ,salary  from auths;

              

              begin 

              

                open c_auths;

                

                loop 

                --检索一条记录

                

                 fetch c_auths into v_name ,v_salary;

                --当前所有的记录都被检索出后退循环。

                exit when c_auths%notfound;

                --对检索的数据进行处理

                

                end loop;

                

                close c_auths;

                end;

          ---------------

          

          

          ---------------无名块实例

          

          

             set serveroutput on size 1000--设置存储缓冲区大小

             

          

           declare 

          

            v_TypeCode1  varchar2(6):='cc';

            v_TypeCode2  varchar2(6):='dd';

            v_TypeRemark1 varchar2(15):='Computer';

            v_typeRemark2 varchar2(15):='C++Language';

            v_OutPut varchar2(15);

            

            begin

              insert into type

              

                  values(v_TypeCode1,v_TypeRemark1);

                  values(v_TypeCode2,v_TypeRemark2);

                  

               select type_remark

               

                   into v_OutPut from type

                   

                   where type_code=v_TypeCode1;

                

               Dbms_Output.put_line(v_OutPut);

               

                select type_remark

               

                   into v_OutPut from type

                   

                   where type_code=v_TypeCode2;

                

               Dbms_Output.put_line(v_OutPut);

               

            end inserttype;

      

          -----------------------------------

       

        ---------------------命名块实例

          

          <<inserttype>>

          

          declare 

          

            v_TypeCode1  varchar2(6):='cc';

            v_TypeCode2  varchar2(6):='dd';

            v_TypeRemark1 varchar2(15):='Computer';

            v_typeRemark2 varchar2(15):='C++Language';

            v_OutPut varchar2(15);

            

            begin

              insert into type

              

                  values(v_TypeCode1,v_TypeRemark1);

                  values(v_TypeCode2,v_TypeRemark2);

                  

               select type_remark

               

                   into v_OutPut from type

                   

                   where type_code=v_TypeCode1;

                

               Dbms_Output.put_line(v_OutPut);

               

                select type_remark

               

                   into v_OutPut from type

                   

                   where type_code=v_TypeCode2;

                

               Dbms_Output.put_line(v_OutPut);

               

            end inserttype;--或者是 end <<inserttype>>

            

            ---------------------------------

            

            

 -------定义子程序

     --------创建存储过程inserttype

     create or replace procedure inserttype as 

     -------声明在块中要用到的变量

            v_TypeCode1  varchar2(6):='cc';

            v_TypeCode2  varchar2(6):='dd';

            v_TypeRemark1 varchar2(15):='Computer';

            v_typeRemark2 varchar2(15):='C++Language';

            v_OutPut varchar2(15);

     begin

              insert into type

              

                  values(v_TypeCode1,v_TypeRemark1);

                  values(v_TypeCode2,v_TypeRemark2);

                  

               select type_remark

               

                   into v_OutPut from type

                   

                   where type_code=v_TypeCode1;

                

               Dbms_Output.put_line(v_OutPut);

               

                select type_remark   into v_OutPut from type

                   

                   where type_code=v_TypeCode2;

 

Dbms_Output.put_line(v_OutPut);

               

            end inserttype;

        

     -----将上例中的关键字declare 改变成关键字create or replace procedure 时候,无名块就变成了存储过程。注意,在end 关键字后必须加上存储过程名。

   

     -------------下面是一个触发器的例子

     

     --创建触发器salary_trigger

     

       create or replace trigger salary_trigger

       

          before insert or update of salary  on suths  for each row

          

        begin

          --如果插入值或者修改值大于10000时候,报告应插入的工资值,并产生异常,退出该触发器

          if :new.salary>10000 then 

             raise_application_error(-200060,'插入的工资应小于10000!');

            end if;

         end salary_trigger;

       --该触发器被创建在auths表上,该触发器确保只有小于10000的值才能插入到salary列中,当向表中插入或者修改一条记录时,触发该触发器。

 

分享到:
评论

相关推荐

    plsql基本语法ppt

    在本"plsql基本语法ppt"中,我们将探讨PL/SQL的一些核心概念和关键语法。 1. **变量声明**: 在PL/SQL中,我们首先需要声明变量来存储数据。变量可以声明为内置数据类型(如NUMBER、VARCHAR2、DATE等)或自定义...

    oracle plsql基本语法

    ### Oracle PL/SQL基本语法详解 #### 一、PL/SQL简介 PL/SQL (Procedural Language for SQL) 是一种专门为 Oracle 数据库设计的过程化编程语言,它结合了 SQL 的强大功能和过程化编程语言的特点,使得开发人员能够...

    Oracle_plsql基本语法笔记.txt

    标题 基本语法 %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 ...

    Oracle+PLSQL+语法手册 全面 详细 chm

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其与PLSQL(Procedural ...它详细讲解了Oracle数据库的基础概念、PLSQL的语法结构以及实际应用,有助于提升对Oracle环境下的程序开发和数据库管理能力。

    PLsql语法.md

    - 是专用于Oracle服务器,在SQL基础之上,**添加了一些过程化控制语句,叫PLSQL** - 过程化包括有:类型定义,判断,循环,游标,异常或例外处理。。。 - **PLSQL强调过程** ![PLsql图片描述]...

    oracle_PLSQL_语法详细手册

    这份手册旨在帮助用户理解和掌握在Oracle环境中进行数据管理和编程的基础知识。 在SQL语法部分,手册涵盖了创建数据库对象的核心语句,如: 1. **CREATE TABLE** 语句:用于创建数据库中的表。你可以定义表的结构...

    pl_sql基本语法例子.rar_SQL2569_oracle_pl/sql_plsql增删改查

    1. PL/SQL基础语法: PL/SQL由三部分组成:声明部分(Declaration)、执行部分(Execution)和异常处理部分(Exception Handling)。声明部分用于定义变量、常量、游标等;执行部分包含SQL语句和过程逻辑;异常处理...

    基础PLSQL语法

    [PLSQL] PLSQL PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务...此文档包含了PLSQL的常见语法,有助于初学者快速入门

    oracle-plsql基础到实战

    plsql基本语法与相关案例-从小白到明白

    oracle数据库和plsql语法练习

    "plsql.txt"文件可能包含PL/SQL语法的详细示例和练习,帮助用户掌握PL/SQL的基础和高级特性。基础内容可能包括变量声明、条件控制(IF-THEN-ELSIF-ELSE、CASE语句)、循环(WHILE、FOR循环)、异常处理(BEGIN-...

    plsql语法编程实例

    本资料包“plsql语法编程实例”提供了一系列SQL基础语法和PL/SQL编程实例,对于学习和掌握这一技能非常有帮助。 首先,SQL(Structured Query Language)是关系型数据库管理系统中用于管理和处理数据的标准语言。其...

    plsql---语法

    在实际开发中,掌握PL/SQL语法是数据库管理、数据操作和业务逻辑实现的基础。通过`Sqlhelp.hlp`和`Plshelp.hlp`这样的帮助文件,开发者可以快速查找和理解特定的函数、语法点,提高编程效率。同时,不断实践和学习...

    PLSQL简易教程学过以后plsql不愁

    本文将讲述 PLSQL 基础语法,结构和组件、以及如何设计并执行一个 PLSQL 程序。 PLSQL 的优点 ---------------- PLSQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令。...

    Oracle_PLSQL_语法详细手册

    基本语法包括指定表名、列名及其数据类型。例如,`CREATE TABLE Employees (ID INT PRIMARY KEY, Name VARCHAR2(50), Salary NUMBER)`。表可以有各种约束,如NOT NULL(不允许空值)和PRIMARY KEY(主键,确保数据...

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

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

    PLSQL数据库应用

    1. **PLSQL基本语法**:PLSQL由声明部分、执行部分和异常处理部分组成。声明部分定义变量、常量、游标等;执行部分包含SQL语句和PLSQL语句;异常处理部分用于捕获和处理运行时错误。 2. **PLSQL块**:包括匿名块、...

    PLSQL 操作学习文档

    1. **PLSQL基础**:了解PLSQL的基本语法结构,包括声明变量、常量、游标、异常处理等。学习如何定义过程(PROCEDURE)、函数(FUNCTION)以及包(PACKAGE)。 2. **SQL语句的使用**:在PLSQL中,你可以嵌入SQL语句...

Global site tag (gtag.js) - Google Analytics