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