1 在Oracle 数据库中进行过程调试
Oracle 进行过程调试的格式为:
Declare
Param_int integrate;
Begin
Null;
--operate the data
end
Sql server 的过程调试格式:
在sql server中过程编写过程为直接编写sql语句
比如以上的过程的脚本在Sql service中实现为
Declare @param_int int
Null;
--Operate the data;
2 在Oracle 编写存储过程
2.1 整个存储过程各个环节语法注意事项
下面首先提供以下基本格式的存储过程语法结构
CREATE OR REPLACE PROCEDURE cc_getmanualquery
(
param_inputNum IN number,
Param_inputString In varchar,
Param_OutNum out varchar
)
AS
Param_temp Number;
begin
--Operate the data
end ;
注意事项:
1)存储过程接口的参数在多个情况下,需要加上,进行间隔
2)存储过程的变量参数,每个变量的定义后面都加上;
3)存储过程的执行体,在结束后加上;符号。
2.2 If条件语句语法
If语句的格式为:
If ()then
Begin
End
Elsif ()then
Begin
End
End if
If 语句和Sql Server 格式不一样
在 Sql Server 中的If语句的格式为
If()
Begin
--Operate the data
End
Else ()
Begin
--Operate The data
End
2.3返回数据集合的方式
l_cursor out DSPackage.DataSet
定义游标格式的变量,同时在存储过程中,对游标进行设定
在Sql Server 中数据集合返回格式为
直接在存储过程的操作区中最后一个select语句,查询的数据结果,这种方式在Oracle中会出现异常。
2.4变量定义 和赋值的方式
在Oracle中变量定义格式
变量名称 varchar
赋值的方式
变量名称:=变量值。
Sql Server 中为
Declare @param int;
Set @param=1;
2.5使用Select into 的方式进行数据赋值方式时,在没有数据填充的情况下,异常情况
注意在 Oracle 中Select 返回结果中没有数据集的情况下,就会发生异常,需要进行异常处理。
在Sql server中 变量为Null
2.6 oracle中的异常处理
EXCEPTION
WHEN OTHERS
THEN
--返回值赋值
raise_application_error (-20000,
'任务队列入日志库错误' || SQLERRM
);
GOTO proc_end;<<proc_end>>
NULL;
2.7 变更影响行号数值的获取
if sql%rowcount = 0 then
begin
open l_cursor for select* from CC_MANUAL where id is null;--表的名字
i_o_state := -9;
v_o_msg := '更新协查事件表问题标识失败';
--raise exp;
end;
end if;
以上sql%rowcount = 0 部分为 判断更新影响的行数是否为0
2.8 通过Select 创建表
实例: create table CC_NeedImport_CellPhoneSort as select * from cellphonesort
语法格式:create Table 表名 as select * from 表名
2.9 字符串拼接
实例: concat(endcode,'0')
SqlServer 中为 endcode+'0'