《ORACLE存储过程开发基础语法》由会员分享,可在线阅读,更多相关《ORACLE存储过程开发基础语法(7页珍藏版)》请在人人文库网上搜索。
1、ORACLE存储过程开发基础语法create or replace procedure test(var_name_l in type.var_name_2 out type) as -声明变量(变量轻变量类型)begin-储备过程的执行体end test;打印岀输入的时刻信息E.g:create or replace procedure test(workDate in Date) isdatebegindbms_output.putline('Thcinputis:&apos:llto_date(workDate,'yyyy-mm-dd');end test;。
2、2、变量赋值变量名:=值;E.g:create or replace procedure test(workDate in Date) isx number(4,2);beginx := 1;end test;3.判定语句:if 比较式 then begin end; end if;E-gcreate or replace procedure test(x in number) is beginif x 0 thenbeginx := 0 x;end;end if;if x = 0 thenbeginx: = I;end;end if;end test;4、For循环For in . LOOP。
3、-执行语句end LOOP;(1)循环迪历游标create or replace procedure test() asCursor cursor is select name from student; name varchar(20);begin for name in cursor LOOPbegindbms_output.putline(name);end;end LOOP;end test;(2)循环遍历数组create or replace procedure test(varArray in myPackage.TestArray) as-(输入参数varArray是自泄义的数组。
4、类型,泄义方式见标题6)i number;begini := 1; -储备过程数组是起始位宜是从1开始的,与java、C、C卄等语言不同。因为在Oracle 中本是没有数组的概念的,数组事实上确实是一张for i in 1 .varArray.count LOOPdbms_output.putline('Thc No.'ll i II 'record in varArray is:'llvarArray(i);end LOOP;end test;5、While 循环while条件语句LOOPbegin end;end LOOP;E-gcreate or 。
5、replace procedure test(i in number) asbeginwhile i 10LOOPbegini:=i+ 1;end;end LOOP;end test;6、数组第一明确一个槪念:Oracle中本是没有数组的概念的,数组事实上确实是一张表(Tabic),每个数组元素确实是表中的一个记录。使用数组时,用户能够使用Oracle差不多左义好的数组类型,或可依照自己的需要立义数组类型。(1)使用Oracle自带的数组类型x array: -使用时需要需要进行初始化e.g:create or replace procedure test(y out array) isx a。
6、rray;beginx := new array();y := x;end test;(2)自立义的数组类型(自立义数据类型时,建议通过创建Package的方式实现,以便于治理)E.g (自定义使用参见标题 4.2) create or replace package myPackage is-Public type declarations type info is record(name varchar(20), y number);type TestArray is table of info index by binaryjnteger; 一此处声明 了 一个 TestArray 的类。
7、型 数据,事实上其为一张储备Info数据类型的Table而已,及TestArray确实是一张表,有两 个字段,一个是name, 个是y。需要注意的是此处使用了 Index by binary_intcgcr编制该Table的索引项, 也能够不写,直截了当写成:type TestArray istable of info,假如不写的话使用数组时就需要进行初始化:varArray myPackage.TestArray; varArray := new myPackage.TestArrayO;end TestArray;7.游标的使用Oracle中Cursor是专门有用的,用于遍历临时表中的査询。
8、结果。其相关方法和属性也专门 多,现仅就常用的用法做一二介绍:(l)Cursor型游标(不能用于参数传递)create or replace procedure test() iscusor_l Cursor is select std_name from student where ; -Cursor 的使用方式 1 cursor_2 Cursor;beginselect class_name into cursor_2 from class where ; -Cursor 的使用方式 2可使用 For x in cursor LOOP. end LOOP:来实现对 Cursor 的遍历en。
9、d test;SYS_REFCURSOR型游标,该游标是Oracle以预先左义的游标,可作岀参数进行传递create or replace procedure test(rsCursor out SYS_REFCURSOR) is cursor SYS_REFCURSOR: name varhcar(20);beginOPEN cursor FOR select name from student where . -SYS_REFCURSOR 只能通过 OPEN 方 法来打开和赋值LOOPfetch cursor into name -SYS_REFCURSOR 只能通过 fetch into 来打开和適历 exit when cursor%NOTFOUND;-SYS_REFCURSOR 中可使用三个状态属性:%NOTFOUND(未找到记录信息)%FOUND(找至lj记录信息) %ROWCOUNT(然后当前游标所指向的行位宜)dbms_output.putline(name);end LOOP: rsCursor := cursor; end test。