存储过程 ORACLE 和informix 存储过程区别 10.赋值 Oracle: v_1 := 100; Informix: let v_1 = 100; 2009/07/09 尚洋信德 存储过程 练习 创建一个存储过程, 使用游标从dept表中取BID为’010’开头的记录信息, 把它往表t01_psn中插入一条记录,并且循环打印插入的数据记录. 2009/07/09 尚洋信德 函数 1. 函数结构 CREATE OR REPLACE FUNCTION 函数名( 参数1 IN NUMBER, 参数2 IN NUMBER )RETURN 类型 IS | AS BEGIN FUNCTION _BODY END函数名; 注释: 函数与存储过程相似,唯一区别函数必须向调用他的语句返回一个值,它与存储过合起来被称为存储子程序,从某种意义讲为小程序. 2009/07/09 尚洋信德 函数 创建一个函数 CREATE OR REPLACE FUNCTION AREA( P_radius in number ) return number As V_pi number := 3.145; V_area number; BEGIN V_area :=v_pi * POWER(P_radius,2); Return V_area; END AREA; 2009/07/09 尚洋信德 函数 调用函数 select 函数名(参数) from dual 注释: dual 是系统临时表. user_procedures 获取访问相关存储过程信息. all_procedures 获取访问相关查看所有存储过程信息. 2009/07/09 尚洋信德 函数 删除函数 DROP FUNCTION 函数名 2009/07/09 尚洋信德 包 包头和包体结构 CREATE [OR REPLACE ] PACKAGE 包名 { IS | AS } PACKAGE _SPECIFICATION END包名; CREATE [OR REPLACE ] PACKAGE BODY 包名 { IS | AS }? PACKAGE 过程 END包名; 注释 : PACKAGE _SPECIFICATION 是指包的用户使用的过程和函数的列表. PACKAGE 过程 是指包的用户可以使用的存储过程和函数的列表(包含变量,类型,定义和游标) 包主要分为 :规范和包体.它的用途主要是把存储过程和函数组织到包中.通过PL/SQL代码模块化,构 建其他编程人员重用的代码库. 2009/07/09 尚洋信德 包 创建包和包体 ----创建包头 create or replace package PRODUCET AS function pro_list(sp_did in varchar) return integer; END PRODUCET; -----创建包体 create or replace package body PRODUCET AS function pro_list(sp_did in varchar) return integer is v_values integer; begin 2009/07/09 尚洋信德 包 select count(*) into v_values from t01_psn where did=sp_did; DBMS_OUTPUT.PUT_LINE('v_values='||v_values); return(v_values); end pro_list; END PRODUCET; 2009/07/09 尚洋信德 包 包调用 Select PRODUCET. pro_list From dual; 注释: 如果在包中调用存储过程即 CALL PRODUCET. 过程名 PRODUCET 是包名称 pro_list 是函数名称 2009/07/09 尚洋信德 包 删除包 DROP PACKAGE 包名 2009/07/09 尚洋信德 INFORMIX ESQL/C 培训材料 2000/01/08 尚洋电子IT中心 * INFORMIX ESQ