1 / 19
文档名称:

oracle存储过程学习经典[语法+实例+调用].doc

格式:doc   页数:19
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

oracle存储过程学习经典[语法+实例+调用].doc

上传人:rjmy2261 2013/1/9 文件大小:0 KB

下载得到文件列表

oracle存储过程学习经典[语法+实例+调用].doc

文档介绍

文档介绍:Oracle 存储过程学习
目录
Oracle 存储过程 1
Oracle存储过程基础知识 1
Oracle存储过程的基本语法 2
关于Oracle存储过程的若干问题备忘 4
1. 在Oracle中,数据表别名不能加as。 4
2. 在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了。 5
3. 在利用select...into...语法时,必须先确保数据库中有该条记录,否则会报出"no data found"异常。 5
4. 在存储过程中,别名不能和字段名称相同,否则虽然编译可以通过,但在运行阶段会报错 5
5. 在存储过程中,关于出现null的问题 5
6. Hibernate调用Oracle存储过程 6
用Java调用Oracle存储过程总结 6
一、 无返回值的存储过程 6
二、 有返回值的存储过程(非列表) 8
三、 返回列表 9
在存储过程中做简单动态查询 11
一、 本地动态SQL 12
二、 使用DBMS_SQL包 13
Oracle存储过程调用Java方法 16
Oracle高效分页存储过程实例 17
Oracle存储过程基础知识
商业规则和业务逻辑可以通过程序存储在Oracle中,这个程序就是存储过程。
存储过程是SQL, PL/SQL, Java 语句的组合,它使你能将执行商业规则的代码从你的应用程序中移动到数据库。这样的结果就是,代码存储一次但是能够被多个程序使用。
要创建一个过程对象(procedural object),必须有 CREATE PROCEDURE 系统权限。如果这个过程对象需要被其他的用户schema 使用,那么你必须有 CREATE ANY PROCEDURE 权限。执行 procedure 的时候,可能需要excute权限。或者EXCUTE ANY PROCEDURE 权限。如果单独赋予权限,如下例所示: 
grant  execute on MY_PROCEDURE  to Jelly
调用一个存储过程的例子:
execute MY_PROCEDURE( 'ONE PARAMETER');
存储过程(PROCEDURE)和函数(FUNCTION)的区别。
function有返回值,并且可以直接在Query中引用function和或者使用function的返回值。
本质上没有区别,都是 PL/SQL 程序,都可以有返回值。最根本的区别是: 存储过程是命令,  而函数是表达式的一部分。比如:
select max(NAME) FROM
但是不能 exec max(NAME) 如果此时max是函数。
PACKAGE是function,procedure,variables 和sql 语句的组合。package允许多个procedure使用同一个变量和游标。
创建 procedure的语法:

CREATE [ OR REPLACE ] PROCEDURE [ schema.]procedure
[(argument [IN | OUT | IN OUT ] [NO COPY] datatype
[, argument [IN | OUT | IN OUT ] [NO COPY] datatype]...
)]
[ authid { current_user | definer }]
{ is | as } { pl/sql_subprogram_body |
language { java name 'String' | c [ name, name] library lib_name
}]
Sql 代码:
CREATE PROCEDURE (acc_no IN NUMBER, amount IN NUMBER) AS
BEGIN
UPDATE accounts
SET balance = balance + amount
WHERE account_id = acc_no;
END;
可以使用 create or replace procedure 语句, 这个语句的用处在于,你之前赋予的excute权限都将被保留。
IN, OUT, IN OUT用来修饰参数。
IN 表示这个变量必须被调用者赋值然后传入到PROCEDURE进行处理。
OUT 表示PRCEDURE 通过这个变量将值传回给调用者。
IN OUT 则是这两种的组合。
authid代表两种权限:
定义者权限(difiner right 默认),执行者权限(invoker right)。
定义

最近更新

2024年阿克苏职业技术学院单招职业倾向性测试.. 39页

2024年陕西交通职业技术学院单招综合素质考试.. 40页

2024年陕西电子信息职业技术学院单招职业技能.. 40页

2024年陕西省榆林地区单招职业适应性测试题库.. 40页

2024年陕西邮电职业技术学院单招职业倾向性考.. 40页

2024年集美大学诚毅学院单招职业技能测试题库.. 40页

2024年青海交通职业技术学院单招职业适应性测.. 40页

2024年青海省西宁市单招职业倾向性考试题库及.. 40页

2024年顺德职业技术学院单招职业技能测试题库.. 41页

2024年鹤壁汽车工程职业学院单招职业倾向性测.. 40页

2024年黄冈职业技术学院单招综合素质考试模拟.. 40页

2024年黎明职业大学单招职业适应性测试题库带.. 40页

2024年黔南民族幼儿师范高等专科学校单招职业.. 40页

2025年七台河职业学院单招职业倾向性测试题库.. 41页

2025年上海兴伟学院单招综合素质考试题库汇编.. 42页

2025年上海师范大学单招综合素质考试模拟测试.. 40页

2025年上海杉达学院单招职业倾向性考试模拟测.. 40页

2025年上海立信会计金融学院单招职业技能测试.. 40页

2025年上饶职业技术学院单招职业适应性测试模.. 39页

2025年临沂职业学院单招综合素质考试模拟测试.. 38页

2025年云南城市建设职业学院单招职业倾向性考.. 40页

2025年云南旅游职业学院单招职业技能测试模拟.. 40页

2025年云南省临沧地区单招职业适应性考试模拟.. 39页

2025年仙桃职业学院单招职业倾向性考试模拟测.. 42页

2025年保定理工学院单招职业技能考试模拟测试.. 39页

2025年信阳航空职业学院单招职业技能测试模拟.. 40页

2025年六盘水职业技术学院单招职业适应性考试.. 41页

2025年兰州航空职业技术学院单招职业适应性考.. 40页

2025年医院感染管理质量控制评价内容及考核标.. 2页

2024年常州机电职业技术学院单招职业适应性测.. 78页