oracle存储过程基本语法

oracle存储过程基本语法

ID:47359535

大小:27.55 KB

页数:7页

时间:2019-08-04

oracle存储过程基本语法_第1页
oracle存储过程基本语法_第2页
oracle存储过程基本语法_第3页
oracle存储过程基本语法_第4页
oracle存储过程基本语法_第5页
资源描述:

《oracle存储过程基本语法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、oracle存储过程的基本语法1.基本结构 CREATEORREPLACEPROCEDURE存储过程名字(   参数1INNUMBER,   参数2INNUMBER)IS变量1INTEGER:=0;变量2DATE;BEGINEND存储过程名字2.SELECTINTOSTATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子:  BEGIN SELECTcol1,col2into变量1,变量2FROMtypestructwherexxx; EXCEPTION 

2、WHENNO_DATA_FOUNDTHEN     xxxx; END; ...3.IF判断 IFV_TEST=1THEN   BEGIN       dosomething   END; ENDIF;4.while循环 WHILEV_TEST=1LOOP BEGIN XXXX END; ENDLOOP;5.变量赋值 V_TEST:=123;6.用forin使用cursor ... IS CURSORcurISSELECT*FROMxxx; BEGIN FORcur_resultincurLOOP  BEGIN   V_SUM:=cur_result.列名1+cur_r

3、esult.列名2  END; ENDLOOP; END;7.带参数的cursor CURSORC_USER(C_IDNUMBER)ISSELECTNAMEFROMUSERWHERETYPEID=C_ID; OPENC_USER(变量值); LOOP FETCHC_USERINTOV_NAME; EXITFETCHC_USER%NOTFOUND;   dosomething ENDLOOP; CLOSEC_USER;8.用pl/sqldeveloperdebug 连接数据库后建立一个TestWINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

4、关于oracle存储过程的若干问题备忘1.在oracle中,数据表别名不能加as,如:select a.appname from appinfo a;-- 正确select a.appname from appinfo as a;-- 错误 也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了。  select af.keynode into kn from APPFOUNDATION af where af.appid=aid and af.fo

5、undationid=fid;-- 有into,正确编译  select af.keynode from APPFOUNDATION af where af.appid=aid and af.foundationid=fid;-- 没有into,编译报错s,提示:Compilation   Error: PLS-00428: an INTO clause is expected in this SELECT statement3.在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出"nodatafound"异常。或者exceptionw

6、henno_data_foundthennull;  可以在该语法之前,先利用selectcount(*)from 查看数据库中是否存在该记录,如果存在,再利用select...into...4.在存储过程中,别名不能和字段名称相同,否则虽然编译可以通过,但在运行阶段会报错 select keynode into kn from APPFOUNDATION where appid=aid and foundationid=fid;-- 正确运行select af.keynode into kn from APPFOUNDATION af where af.appid=a

7、ppid and af.foundationid=foundationid;-- 运行阶段报错,提示ORA-01422:exact fetch returns more than requested number of rows5.在存储过程中,关于出现null的问题假设有一个表A,定义如下:create table A(id varchar2(50) primary key not null,vcount number(8) not null,bid varchar2(50) not null -- 外键 );如果在存储过程中,使用如下

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。