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存储过程: ```sql CREATE OR REPLACE PROCEDURE greet(name IN VARCHAR2) AS BEGIN DBMS_OUTPUT.PUT_LINE('Hello, ' || name || '!'); END; / ``` 在这个例子...
Mybatis 是一个轻量级的持久层框架,它可以简化 SQL 操作,而 Oracle 则是一个广泛使用的商业关系数据库管理系统。 1. **Spring MVC 简介** Spring MVC 提供了一种模块化的方式来组织 web 应用的组件。Controller ...
SQL是用于查询、更新和管理关系数据库的标准语言,而PL/SQL是Oracle特有的过程编程语言,扩展了SQL的功能,允许编写存储过程、函数和触发器等。 在Oracle中,了解数据库的架构至关重要。这包括表空间、数据文件、...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据着重要地位。本套课件旨在帮助新手从零基础快速入门,逐步熟悉Oracle的各项核心功能和操作,通过实例学习,使您能够掌握...
Oracle 9i PL/SQL是Oracle数据库系统中的一个核心组件,它是编程和数据库交互的语言,专为数据库管理和开发设计。PL/SQL结合了SQL查询语言的强大力量和过程编程语言的功能,使得开发者能够创建复杂的数据处理逻辑和...
总之,"Oracle PL/SQL教程全解"是一个综合性的学习资源,无论你是数据库管理员、开发人员还是想要提升技能的数据爱好者,都能从中受益。通过系统学习,你可以掌握Oracle数据库的核心操作和PL/SQL编程,为你的职业...
首先,为了连接C#应用程序到Oracle数据库,我们需要安装Oracle客户端或者使用ODP.NET(Oracle Data Provider for .NET),这是一个Oracle提供的专门用于.NET Framework的数据库访问组件。ODP.NET允许C#代码直接与...
在这个过程中,你会了解到如何配置数据库连接、编写映射文件、创建 Java 映射接口以及如何执行 SQL 查询。对于初学者来说,这个例子提供了良好的实践平台,帮助理解 MyBatis 如何与数据库进行交互,以及如何将 SQL ...
- **存储过程的最佳实践**:分享编写高质量、可维护的存储过程的最佳实践,如使用注释、遵循命名约定等。 - **与Java和其他编程语言的集成**:探讨如何在Oracle数据库中使用Java存储过程,以及如何与其他外部系统...
6. **异常处理**:PL/SQL提供了一个强大的异常处理机制,允许你定义和捕获运行时错误,从而编写健壮的代码。 7. **游标 FOR 循环**:这是一种简化版的游标使用,可以方便地遍历查询结果集,无需显式打开、提取和...
4. Oracle存储结构:深入理解表的存储方式,如heap tables、index-organized tables以及B树索引的工作原理。 5. 数据仓库与OLAP:介绍数据仓库设计原则,星型和雪花模式,以及Oracle的OLAP功能如物质化视图、快速聚...
在这个入门教程中,我们将探索如何使用iReport,一个JReport的配套设计工具,来设计和生成报表。 首先,我们需要了解**iReport**。iReport是Jaspersoft公司开发的一款开源报表设计工具,它可以与JReport紧密集成,...
2. 表空间和数据文件:表空间是Oracle存储数据的逻辑单元,由一个或多个数据文件组成。你可以根据需要创建和管理表空间,以优化存储分配。 3. 索引:为了提高查询性能,可以为表中的列创建索引。Oracle支持B-Tree、...
本教程“Oracle8i/9i数据库基础”由赵元杰编写,旨在为学习者提供一个全面而简洁的Oracle入门指南,涵盖Oracle SQL*PLUS基础和PL/SQL程序设计。 在Oracle SQL*PLUS基础部分,教程首先介绍了关系数据库系统的基本...
Oracle数据库是目前世界上使用...培训资料还涵盖了更多进阶主题,比如数据的插入、更新、删除,事务控制,索引与视图的创建和应用,以及存储过程和触发器的编写等,这些内容可以帮助学员深入理解并运用Oracle数据库。
2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...
PPT可能包含如何编写存储过程、函数、触发器和游标的例子。 4. **数据库管理**:这包括创建和管理用户,权限和角色,以及数据表空间的分配。PPT可能讨论如何进行数据库备份和恢复,以及使用SQL*Plus等工具进行日常...
JMS(Java Message Service)是Java平台中用于创建和管理消息传递系统的一...通过这个过程,开发者可以学习到如何在WebLogic这样的企业级应用服务器上构建可靠的消息传递系统,以及如何使用Spring框架进行集成和管理。
- **Report 入门例子**:通过一个简单的实例介绍如何创建基本的报告。 - **Report页面设置**:调整报告的布局、格式等。 - **数据模型、固定框、循环框**:理解这些概念对于构建复杂的报告结构至关重要。 - **实现...