`

一个 Oracle 存储过程编写的入门级例子

 
阅读更多

http://blog.csdn.net/defonds/article/details/4344797

1 sql 语句创建一个用户信息表 user_info

 

CREATE TABLE user_info
(
 id   VARCHAR2(4),
 name VARCHAR2(15),
 pwd  VARCHAR2(15),
 address VARCHAR2(30)
);

 

2 sql 语句创建一个存储过程 AddNewUser

 

CREATE OR REPLACE PROCEDURE AddNewUser
(
 n_id   user_info.id%TYPE,
 n_name user_info.name%TYPE,
 n_pwd  user_info.pwd%TYPE,
 n_address user_info.address%TYPE
)
AS
BEGIN
 --向表中插入数据
 INSERT INTO user_info(id,name,pwd,address)
  VALUES(n_id,n_name,n_pwd,n_address);
END AddNewUser;
/

 

表有了,存储过程有了,那么什么时候调用呢,又是如何调用的呢?

 

3 存储过程的调用

 

--下面我们利用PL/SQL匿名块调用该过程
DECLARE
 --描述新用户的变量
 v_id   user_info.id%TYPE   := 'u002';
 v_name user_info.name%TYPE := 'wish';
 v_pwd  user_info.pwd%TYPE  := 'history';
 v_add  user_info.address%TYPE := 'shanghai';
BEGIN
 --调用过程,添加wish用户到数据库
 AddNewUser(v_id,v_name,v_pwd,v_add);
 DBMS_OUTPUT.PUT_LINE('用户 ' || v_name || ' 已经成功插入');
END;
/

 

证明存储过程编写 OK

 

我们在程序中(或者 sql 可以出现的任何地方),使用 sql 调用我们刚写好的存储过程:

 

--利用EXEC()直接插入
EXEC AddNewUser('u003','jian','jian','beijing');
--或
EXECUTE AddNewUser('u004','zhang','zhang','beijing');

 

 

完毕。

 

细心地读者会发现:存储过程不就是对 sql 语句的封装么?有了 AddNewUser 这个存储过程,每次插入的时候我们不用写 sql 语句 insert 。。。 了。

 

很对,存储过程本质上就是对业务关系复杂的 sql 语句的封装。sql 语句以程序块的形式被封装在了数据库中了。写好了以后,无论是 java,还是 .net ,抑或其他开发语言,可以像使用 sql 语句那样随意调用。这就是数据库开发。

 

另 外,过程与函数的差别:函数与过程有很多相似的地方,但也有一些差别,其中的一点就是,过程的参数可以有三种模式(IN、OUT、IN OUT),而函数只有一种(IN),因为使用函数的目的是传入0或多个参数,返回单一的值,想让函数返回多个值是一种不良的编程习惯,我们应该加以改正。

分享到:
评论

相关推荐

    oracle存储过程入门实例,绝对推荐!

    接下来,我们将通过一个简单的例子来创建和执行Oracle存储过程: ```sql CREATE OR REPLACE PROCEDURE greet(name IN VARCHAR2) AS BEGIN DBMS_OUTPUT.PUT_LINE('Hello, ' || name || '!'); END; / ``` 在这个例子...

    Spring + Mybatis + Oracle(Spring MVC入门例子,实现简单的查询功能)

    Mybatis 是一个轻量级的持久层框架,它可以简化 SQL 操作,而 Oracle 则是一个广泛使用的商业关系数据库管理系统。 1. **Spring MVC 简介** Spring MVC 提供了一种模块化的方式来组织 web 应用的组件。Controller ...

    Oracle从入门到精通

    SQL是用于查询、更新和管理关系数据库的标准语言,而PL/SQL是Oracle特有的过程编程语言,扩展了SQL的功能,允许编写存储过程、函数和触发器等。 在Oracle中,了解数据库的架构至关重要。这包括表空间、数据文件、...

    Oracle课件,入门到熟悉+例子,新手自学,很好的教材哟!

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据着重要地位。本套课件旨在帮助新手从零基础快速入门,逐步熟悉Oracle的各项核心功能和操作,通过实例学习,使您能够掌握...

    oracle9ipl/sql从入门到精通

    Oracle 9i PL/SQL是Oracle数据库系统中的一个核心组件,它是编程和数据库交互的语言,专为数据库管理和开发设计。PL/SQL结合了SQL查询语言的强大力量和过程编程语言的功能,使得开发者能够创建复杂的数据处理逻辑和...

    oracle/plsql教程全解

    总之,"Oracle PL/SQL教程全解"是一个综合性的学习资源,无论你是数据库管理员、开发人员还是想要提升技能的数据爱好者,都能从中受益。通过系统学习,你可以掌握Oracle数据库的核心操作和PL/SQL编程,为你的职业...

    C#操作oracle数据库

    首先,为了连接C#应用程序到Oracle数据库,我们需要安装Oracle客户端或者使用ODP.NET(Oracle Data Provider for .NET),这是一个Oracle提供的专门用于.NET Framework的数据库访问组件。ODP.NET允许C#代码直接与...

    mybatis入门例子

    在这个过程中,你会了解到如何配置数据库连接、编写映射文件、创建 Java 映射接口以及如何执行 SQL 查询。对于初学者来说,这个例子提供了良好的实践平台,帮助理解 MyBatis 如何与数据库进行交互,以及如何将 SQL ...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **存储过程的最佳实践**:分享编写高质量、可维护的存储过程的最佳实践,如使用注释、遵循命名约定等。 - **与Java和其他编程语言的集成**:探讨如何在Oracle数据库中使用Java存储过程,以及如何与其他外部系统...

    PL/SQL入门到精通书的源代码

    6. **异常处理**:PL/SQL提供了一个强大的异常处理机制,允许你定义和捕获运行时错误,从而编写健壮的代码。 7. **游标 FOR 循环**:这是一种简化版的游标使用,可以方便地遍历查询结果集,无需显式打开、提取和...

    itjob绝密oracle培训教程课本+PPT

    4. Oracle存储结构:深入理解表的存储方式,如heap tables、index-organized tables以及B树索引的工作原理。 5. 数据仓库与OLAP:介绍数据仓库设计原则,星型和雪花模式,以及Oracle的OLAP功能如物质化视图、快速聚...

    JReport入门及例子(iReport)

    在这个入门教程中,我们将探索如何使用iReport,一个JReport的配套设计工具,来设计和生成报表。 首先,我们需要了解**iReport**。iReport是Jaspersoft公司开发的一款开源报表设计工具,它可以与JReport紧密集成,...

    oracle学习资料

    2. 表空间和数据文件:表空间是Oracle存储数据的逻辑单元,由一个或多个数据文件组成。你可以根据需要创建和管理表空间,以优化存储分配。 3. 索引:为了提高查询性能,可以为表中的列创建索引。Oracle支持B-Tree、...

    oracle详细教程

    本教程“Oracle8i/9i数据库基础”由赵元杰编写,旨在为学习者提供一个全面而简洁的Oracle入门指南,涵盖Oracle SQL*PLUS基础和PL/SQL程序设计。 在Oracle SQL*PLUS基础部分,教程首先介绍了关系数据库系统的基本...

    oracle教程经典内部培训资料

    Oracle数据库是目前世界上使用...培训资料还涵盖了更多进阶主题,比如数据的插入、更新、删除,事务控制,索引与视图的创建和应用,以及存储过程和触发器的编写等,这些内容可以帮助学员深入理解并运用Oracle数据库。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...

    Oracle_PPT_CN.rar

    PPT可能包含如何编写存储过程、函数、触发器和游标的例子。 4. **数据库管理**:这包括创建和管理用户,权限和角色,以及数据表空间的分配。PPT可能讨论如何进行数据库备份和恢复,以及使用SQL*Plus等工具进行日常...

    Oracle EBS 开发笔记

    - **Report 入门例子**:通过一个简单的实例介绍如何创建基本的报告。 - **Report页面设置**:调整报告的布局、格式等。 - **数据模型、固定框、循环框**:理解这些概念对于构建复杂的报告结构至关重要。 - **实现...

Global site tag (gtag.js) - Google Analytics