转: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;

其中 执行部分是必须的。

时间: 2024-08-05 16:35:21

转:ORACLE存储过程笔记1----基本语法(以及与informix的比较)的相关文章

转: ORACLE存储过程笔记2----运算符和表达式

运算符和表达式 关系运算 =等于<>,!=不等于<小于>大于<=小于等于>=大于等于 一般运算 +加-减*乘/除:=赋值号=>关系号..范围||字符连接 赋值号的用法为varible :=value; 数据库赋值可以通过select来完成,其中赋给的变量要先定义V_name varchar2(20);select name into V_name from table; 范围的用法1..8表示1到8 逻辑运算 is null空值between在两者之间in在一列值

转: ORACLE存储过程笔记3----流程控制

流程控制 1.条件 if expression thenpl/sql or sqlend if; if expression thenpl/sql or sqlelsif expression thenpl/sql or sqlend if; 2.循环 loopSQLend loop; while expression loopsqlend loop; for loop_counter in lower_limit..upper_limitloopsqlend loop; goto label;

Oracle存储过程中执行DDL语法

--C1:删除目标表所有数据 EXECUTE IMMEDIATE 'TRUNCATE  TABLE  LDCODE'; --C2:创建索引 EXECUTE IMMEDIATE 'CREATE  INDEX  I_JHLCPOL_CONTNO ON JH_LCPOL(CONTNO)'; --C3:删除索引 EXECUTE IMMEDIATE 'DROP INDEX I_JHLCPOL_CONTNO';

Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基

oracle 存储过程的基本语法

原文:oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字 2.SELECT INTO STATEMENT  将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条  记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)  例子:  

Oracle存储过程基本语法介绍

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删

Oracle存储过程function语法及案例

create or replace function F01_SX03_SUM(statdate varchar2, code varchar2, para varchar2) RETURN number IS v_me number; v_mb number; begin if para = 'me' then select nvl(sum(nvl(me, 0)), 0) / 10000 into v_me from sx03_gl_accass t where t.ccode like (c

Oracle存储过程Procedure语法及案例

create or replace procedure replace(desstr in varchar2, replacestr in varchar2, tablename in varchar2, strgranularity in varchar2, strorgankey in varchar2, strstatisticdate in date) is begin update t41_systemcal_upday t1 set t1.calchar = replace(t1.c

Oracle存储过程基本语法 存储过程

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删