zoukankan      html  css  js  c++  java
  • 转:ORACLE存储过程笔记1----基本语法(以及与informix的比较)

    一、基本语法(以及与informix的比较)
     
    create [or replace] procedure procedure_name (varible {IN|OUT|IN OUT} type)  {IS|AS}

    [varible { in | out | in out }]  type;
    [varible { in | out | in out }] type;
    ......
     
    [cursor curor_name IS select subclause]
     
    begin
     
    body
     
    end [procedure_name];
     
     

    for example:
     
    create or replace procedure sp_login_error_count(user_name_var varchar2) IS
    --创建名为sp_login_error_count的存储过程,并定义传参
    --informix的语法(drop procedure sp_login_error_count;create procedure sp_login_error_count(user_name_var varchar(50)))
     
    error_count_var integer;
    --变量定义
    --informix语法(define error_count_var integer;)
     
    begin
    --程序开始
    --informix语法一样
     
    select error_count into error_count_var from users where user_name=user_name_var;
    --select语句,找到的值放到变量中
    --informix语法一样
     
    error_count_var :=error_count_var+1;
    --变量加1,这是pl/sql的变量赋值运算。
    --informix语法(let error_count_var=error_count_var+1;)
     
    update users set error_count= error_count_var where user_name =user_name_var ;
    --更新统计数
    --informix语法一样
     
    commit;
    --提交
    --informix不需要提交
     
    end sp_login_error_count;
    --结束存储过程
    --informix语法(end procedure;)
     

    ORACLE存储过程执行为execute procedure_name或exec procedure_name
    INFORMIX存储过程执行为execute procedure procedure_name
     
    pl/sql程序由三个块组成:声明部分、执行部分、异常处理部分
    declare 
        /*   声明部分: 在此声明PL/SQL用到的变量,类型及光标 */
    begin
        /*  执行部分:  过程及SQL语句  , 即程序的主要部分  */
    Exception
       /* 执行异常部分: 错误处理  */
    End;
     
    其中 执行部分是必须的。
  • 相关阅读:
    Chrome 无法登录 GitHub,响应时间过长,可行解决办法
    npm install报错 npm ERR! cb() never called! 检查镜像源!
    Win10 移动文件的时候“卡”在“正在暂停/取消”解决办法
    VS code 彻底关闭插件自动更新功能
    箭头函数 函数中的this指向
    ES6 ES6变量的声明
    范围内的拖拽事件
    div拖拽移动事件
    事件对象的属性 div点击移动事件
    tab切换之循环遍历
  • 原文地址:https://www.cnblogs.com/dancheblog/p/4271634.html
Copyright © 2011-2022 走看看