经验分享:Informix和Oracle数据库存储过程的异同_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

经验分享:Informix和Oracle存储过程的异同

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

黑客防线网安网讯:  在工作过程中涉及到过有时要进行INFORMIX和ORACLE之间的移植,有时应用需要既支持INFORMIX数据库又要支持ORACLE数据库,如果应用程序涉及到存储过程的话,就需要既熟悉INFORMIX存储过程...
  在工作过程中涉及到过有时要进行INFORMIX和ORACLE之间的移植有时应用需要既支持INFORMIX数据库又要支持ORACLE数据库如果应用程序涉及到存储过程的话,就需要既熟悉INFORMIX存储过程的写法,又需要熟悉ORACLE存储过程的写法笔者将在工作中总结的一些经验写出来与大家共享
 
建立存储过程的语法:
 
一、Informix
 
create procedure proc_name( [....in_parameter_list])
 
returning out_para_list / out_result_set;
 
二、Oracle
 
create [or replace] procedure procedue_name
 
[ (arg1 [ {in | out | in out }] type
 
(argn [ {in | out | in out }] type,)]
 
{is | as} --代替DECLARE关键字
 
[ 变量定义区]
 
begin
 
end procedure_name;
 
三、几个简单的例子
 
1、没有参数也没有返回值
 
1)Informix
 
create procedure pNoParam()
 
begin
 
on exception
 
rollback work;
 
return;
 
end exception
 
begin work;
 
delete from t1;
 
delete from t2;
 
commit work;
 
end;
 
end procedure;
 
2)Oracle
 
create or replace procedure pNoParam
 
as
 
begin
 
delete from t1;
 
delete from t2;
 
commit;
 
exception
 
when others then
 
begin
 
rollback;
 
end;
 
end pNoParam;
 
2、有输入输出
 
往t1表中插入一条记录,返回值表示插入是否成功。
 
1)Informix
 
create procedure pNormalParam(f1 integer, f2 varchar(10))
returning integer;
 
begin
 
on exception
 
rollback work;
 
return -1;
 
end exception
begin work;
 
insert into t1 values(f1, f2);
 
commit work;
 
return 0;
 
2)Oracle
 
create or replace procedure pNormalParam(f1 number,
f2 varchar2, v_Result out number)
 
as
 
begin
 
insert into t1 values(f1,f2);
 
commit;
 
v_Result = 0;
 
return;
 
exception
 
when others then
 
begin
 
rollback;
 
v_Result := -1;
 
end;
 
end pNormalParam;
 
需要注意的是,在oracle存储过程中,参数是不能加上size的,比如f1,在t1表中该字段是number(10,0),而这里只能写number,而不能写number(10,0)。
 
3、返回记录集
 
1)Informix
 
create procedure pReturnSet() returning integer, varchar(10);
 
define i integer;
 
define j varchar(10);
 
foreach
 
select f1, f2 into i, j from t1
 
return i, j with resume;
 
end foreach;
 
end procedure;
 
2)Oracle
 
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13287-1.html
网站维护教程更新时间:2012-03-23 00:53:18  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer