oracle存储过程的基本语法及注意事项-优侠库游戏网
您当前位置:优侠库 > 资讯攻略 >
来源:未知
2021-03-17 21:39:36 浏览: 分类:资讯攻略

oracle存储过程的基本语法及注意事项

1.基本结构

或替换过程存储过程名

参数1的数量,

参数2个数

)是

1可变整数:= 0;

变量2日期;

开始

结束存储过程名

2.SELECT INTO语句

select查询的结果可以存储在变量中。多个列可以同时存储在多个变量中。必须有一列。

记录,否则抛出异常(如果没有记录,抛出NO_DATA_FOUND)

示例:

开始

从typestruct中选择col1、col2到变量1、变量2,其中xxx

例外

当没有找到数据时

xxxx

结束;

...

3.如果判断

如果V_TEST=1,则

开始

做某事

结束;

结束IF;

4.while循环

当V_TEST=1循环时

开始

电影站

结束;

结束循环;

5.变量赋值

v _ TEST:= 123;

6.使用光标和for in

...

光标cur是SELECT * FROM xxx

开始

对于曲线循环中的cur_result

开始

V_SUM :=cur_result列名1+cur_result。列名2

结束;

结束循环;

结束;

7.带参数的光标

游标C_USER(C_ID NUMBER)是从用户中选择的名称,其中TYPEID = C _ ID

C _ user(变量值);

将C_USER提取到V_NAME中;

退出FETCH C _ USER % NOTFOUND

做某事

结束循环;

关闭C _ USER

8.使用PL/SQL Developer进行调试

连接到数据库后,建立一个测试窗口。

在窗口中输入调用SP的代码,F9开始调试,Ctrl+N分步调试。

关于oracle存储过程若干问题的备忘录

1.在oracle中,数据表别名不能与as一起添加,例如:

从appinfo a中选择a.appname没错。

从appinfo中选择a.appname作为;-错误

可能是怕和oracle中的存储过程一样和关键字冲突吧。

2.在存储过程中,当您选择一个字段时,它后面必须跟有into。如果选择整条记录,使用游标,那就另当别论了。

从APPFOUNDATION af中选择af.keynode到kn中,其中af.appid=aid,af.foundationid = fid-成,编译正确。

从APPFOUNDATION af中选择af.keynode,其中af.appid=aid,af.foundationid = fid-没有进入,编译错误,提示:编译

错误:PLS-00428:此SELECT语句中应该有INTO子句

3.当使用select语法时...到…里面...,您必须首先确保数据库中存在该记录,否则您将报告”。找不到数据& quot不正常。

可以使用select count(*) from检查数据库中是否存在该语法之前的记录,然后使用select...如果它存在的话。...

4.在存储过程中,别名不能与字段名相同,否则,尽管编译可以通过,但在运行阶段仍会报告错误。

从APPFOUNDATION中选择keynode到kn中,其中appid=aid,foundationid = fid-正确运行。

从APPFOUNDATION af中选择af.keynode进入kn其中af.appid=appid,af . foundation id = foundation id;-运行阶段出错,提示

ORA-01422:精确提取返回的行数超过了请求的行数

5.在存储过程中,关于null的问题。

假设有一个表A,定义如下:

创建表A(

id varchar2(50)主键不为空,

vcount number(8)不为空,

Bidvarchar2 (50)非空-外键

);

如果在存储过程中,请使用以下语句:

select sum(vcount)into fcount from A where bid = ' XXXXXX ';

如果出价= & quot表A中不存在xxxxxx & quot记录,fcount = null(即使定义FCoCount时设置了默认值,如:FCoCount Number (8): = 0仍然无效,FCoCount仍然会变成null),所以以后使用FCoCount时可能会出现问题,所以这里最好做个判断:

如果fcount为空,则

fcount:= 0;

结束if;

没关系。

6.Hibernate调用oracle存储过程

this . pnumbermanager . gethibernatetemplate()。执行(

新HibernateCallback()...{

公共对象doInHibernate(会话Session)

抛出HibernateException,SQLException...{

可调用语句cs =会话

。连接()

。准备呼叫(& quot{调用modifyapppnumber_remain(?)} & quot);

cs.setString(1,foundation id);

cs . execute();

返回null

}

});

关键词:oracle,存储过程

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227200.html

攻略资讯
安卓软件
安卓游戏