• oracle pl/sql简介、块、过程


    pl/sql语言是oracle在sql上扩展的语言。
    1 过程、函数、触发器是在pl/sql编写
    2 过程、函数、触发器是在oracle中
    3 pl/sql的语句可以在java中直接调用

    简单介绍

    在sql—plus编写一个存储过程,该过程可以向某表中添加记录。

    第一步:创建表
    create table mytest(name varchar2(20), passwd varchar2(20));

    第二步:创建过程
    create procedure mypro1 is begin
    --执行部分
    insert into mytest value('wdx','123')
    end;
    /
    --回车
    (注意事项:如果系统以后有mypro1这个过程名了,要么换名要么在create后面加上or replace;如果有错,输入紧跟着输入show error)

    第三步:调用该过程
    方式1:exec 过程名(参数值1,参数值2....)
    方式2: call 过程名(参数值1,参数值2....)


    当然也可以在pl/sql developer中创建上述过程,类似。

    pl/sql可以编写过程、函数、触发器、包等。

    编写规范:

    1 注释
    单行注释--
    多行注释/*...*/

    2 标识符号的命名规范
    当定义变量时,建议用v_作为前缀
    当定义的常量时,建议使用c_
    当定义的游标时,建议使用_cursor
    当定义例外error时,建议使用e_

    ***块***

    pl/sql使用来编写块的,块结构示意图,三部分构成,分别为定义部分、执行部分、例外处理部分,
    declear
    /*定义开始*/
    begin
    /*执行部分*/
    exception
    /*例外处理部分*/
    end;

    实例1-只包括执行部分的pl/sql块

    set serveroutput on --打开输出选项
    begin
      dbm_output.put_line('hello world')
      --dbm_output是包,包里面可以是函数和过程
    end;
    /

    实例2-包含定义部分和执行部分的pl/sql块

    set serveroutput on --打开输出选项
    
    declare 
    v_ename varchar2(5);
    v_sal number(7,2);
    
    begin
      select ename,sal into v_ename, v_sal from emp where empno = &no;
      --no是一个接收用户输入的变量,名字可以随便起
      dbm_output.put_line('雇员名'||v_ename ||' 工资:'||v_sal);
    
    exception
      when no_data_found then
      --no_data_fount是oracle预先已经定义的意外
      dbms_output.put_line('输入的编号有错误');
    end;
    /

    过程:

    过程用于执行特定的操作,当建立过程时,既可以指定输入参数也可以指定输出参数,通过在过程中使用输入参数,可
    以将数据传递到执行部分,通过使用输出参数,可以将执行部分的数据传递到应用环境。

    实例1

    create procedure mypro(spName varchar2, spsal number) is
    begin 
      --执行,根据用户名去修改工资
      update emp set sal=spsal where ename=spName;
    end;
    /
    
    call mypro('scott',1234);
  • 相关阅读:
    Spring9:Autowire(自动装配)机制
    【Spring源码分析】非懒加载的单例Bean初始化前后的一些操作
    记一次synchronized锁字符串引发的坑兼再谈Java字符串
    Cglib及其基本使用
    Java回调机制解读
    【设计模式总结】对常用设计模式的一些思考
    【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)
    【Spring源码分析】非懒加载的单例Bean初始化过程(上篇)
    【Spring源码分析】Bean加载流程概览
    Spring8:一些常用的Spring Bean扩展接口
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/5791185.html
Copyright © 2020-2023  润新知