listen software解决方案 “how to” 系列2:存储过程
参照:
参照定义和使用游标
参照定义和使用函数
存储过程
create or replace procedure {procedure name}
( {argument} in {datatype} ) is v_variable {datatype};
–变量类型
varchar(x);
varchar2(x);
varchar2;
char(x);
number(p,s);
–p-数字的位数
–s-数字的精度
number(x);
number;
long;
–容纳32,760字节数据
double precision;
float;
int;
real;
date;
raw(x)
–容纳32,760字节数据
long raw;
–容纳32,760字节数据
–注意数据库类型为long raw
–容纳20亿字节数据
record;
table;
varray;
lob;
clob;
v_variable_c1 varchar2(20);
–创建20个字符长的变量
v_variable_c2 char(10);
–创建固定长度为10个字符的变量
– 最大长度255
v_variable_c3 varchar2;
–变量长度不能超过2000个字符
v_variable_n1 table_name.field_name%type;
–定义参照方案中表字段类型的变量类型
v_variable_n2 number;
v_variable_n3 number := 3;
v_variable_n4 number(10);
v_variable_n5 number(10,2);
v_variable_n6 long;
v_variable_n7 float;
v_variable_n8 real;
type t_my_record is record
(
v_variable1 varchar2(8)
,v_variable2 number(10)
,v_variable3 date
);
my_record t_my_record;
type t_my_table is table of varchar2(10)
–与vb中的数据结构相似
index by binary_integer;
my_table t_my_table;
begin
–这儿插入代码
v_variable_c1 := hello world;
v_variable_n2 :=10;
–条件逻辑
if v_variable_n2 = 1 then
v_variable_c2 := exact match;
elsif v_variable_n3 > 2 then
v_variable_c2 := greater than match;
else
v_variable_c3 := none of the above;
end if;
my_record.v_variable1:=abc;
my_record.v_variable2:=3;
my_record.v_variable3:=to_date(11-jan-1999,dd-mon-yyyy);
my_table(1)=a;
my_table(2)=b;
/* v_variable_n2的值为10,因此第一个条件为false.
v_variable_n3初始为3,因此条件为true,
v_variable_c2的值就为greater than match
循环 */
v_variable_n2:=0;
loop
v_variable_n2:=v_variable_n2+1;
exit when v_variable_n2 > 10;
end loop;
v_variable_n2:=0;
while v_variable_n2<10 loop
v_variable_n2:=v_variable_n2+1;
end loop;
for v_variable_n2 in 1..10 loop
end loop;
end {procedure name};
