Oracle存储过程的理解
在大专时候学的专业是数据库管理专业,在学校学了各种各样的数据 MSSQL、ORACLE、MySQL。
那时候学数据大部分只学到了些皮毛,仅仅只会按照书上SQL语句,输入计算机得出结果,就很有成就感。
对于高阶课程存储过程就有些难度了,那时候也没学好存储过程。最近项目中用到存储过程,才知道存储过程的重要性。
存储过程几乎可以解决所有业务逻辑,我们可以用存储过程取代代码中的逻辑。
这样代码只要关心输入参数得出想要的结果,可以大大简化客户端开发。
但因为存储过程本身语法并不优美,阅读起来会有些吃力,常常会看到一个存储过程有上千行代码,可读性很差。
存储过程在一些场合非常有用,比如常用的 分页存储过程、批量更新处理数据。
所以还是有必要掌握学习存储过程的,特别是一些传统软件行业,存储过程就是他们的核心。
以下是自己总结 存储过程的一些语法:
create or replace procedurre my_proce
(
user_name varchar2(20),
out out_cursor sys_cursor
) as
declare
cursor my_cursor is select * from tab_users;
tab_row tab_user%rowtype;
user_password tab_users.user_password%type;
begin
--几种调用游标的方式
open cursor my_cursor;
--loop 方式
loop
fetch tab_row in my_cursor
dbms_output.putline(tab_row.user_name);
exit when my_sursor%nofound
end loop;
--while 方式
while tab_row%found loop
fetch tab_row in my_cursor;
dbms_output.putline(tab_row.password);
end loop;
-- for 方式 不用显示打开游标
for tab_row in my_cursor loop
dbms_output.put_line(tab_row.username);
end loop;
-- open for sql语句
open out_cursor for 'select * from tab_users';
end;
Oracle存储过程的理解的更多相关文章
- oracle 存储过程(分析理解)
我的理解 比较简单(仅供参考) 存储过程就相当于java里面的方法 简单讲就是一串代码能够实现某个特定的功能,想要使用这个方法直接调用方法名就能够使用他的功能,这就是方法 oracle 存储过程也 ...
- 转:用java调用oracle存储过程总结(比较好理解)
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...
- 用java调用oracle存储过程总结(转)
//1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...
- 如何在pl/sql developer 7运行到oracle存储过程设置断点的地方
如何高效调试oracle存储过程,尤其是父子网状调用的存储过程 1,在需要设置断点的oracle存储过程处设置断点 如何设置断点:直接在某行oracle存储过程处单击行首,会在行首显示 ...
- 用java调用oracle存储过程总结
以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...
- ORACLE存储过程中%TYPE和%ROWTYPE的区别
ORACLE存储过程中%TYPE和%ROWTYPE的区别 在存储过程中%TYPE和%ROWTYPE常用来在PL/SQL中定义变量 因为 t_emp emp%rowtype ;这个语句的意思是 定义一个 ...
- 面试概率极大的Oracle存储过程
1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...
- 160307、Java调用Oracle存储过程返回结果集
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGI ...
- oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...
随机推荐
- NOIP2001 Car的旅行路线
题四 Car的旅行路线(30分) 问题描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速 ...
- ACM2027
统计元音 Problem Description 统计每个元音字母在字符串中出现的次数. Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串. Ou ...
- 我的新顶级域名vell001.ml
好不容易找到了一个免费的顶级域名啊,各种爽啊... 没钱的娃就只能各种求免费了!!! 以后访问我的所有站点都可以从vell001.ml开始了 Vell001主站 VellBlog VellForum
- HW5.9
public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\t%s\ ...
- HW5.1
public class Solution { public static void main(String[] args) { int count = 0; for(int i = 1; i < ...
- Casio普通计算器编程
用xelatex写了个奇怪的东西……欢乐向 PDF http://files.cnblogs.com/htfy/calc.pdf TEX http://files.cnblogs.com/htfy/ ...
- mysql实用指南
mysqld --verbose --help: 可以显示 mysql 的编译配置选项,即功能配置描述. mysql 的配置文件my.cnf调用次序(mysqld --verbose --help 的 ...
- visual studio 2010 "创建控件时出错"解决办法[转]
之前我有在博问里面提问(http://space.cnblogs.com/q/16208/),但一直都没答案.我系统都重装了两次了,可还是出现这样的错误,我很郁闷啊.今天我终于找到原因了. 我写了一个 ...
- 成都Uber优步司机奖励政策(2月21日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- js showModalDialog打开新的页面给原页面传值问题
a.html中打开一个新页面b.html,b.html页面给a.html中的input传一个值并将value赋给input框. a.html: <html> <head> ...