若何开辟ORACLE存储历程-开辟技术[Oracle防范]
本文“若何开辟ORACLE存储历程-开辟技术[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在我的上一个银行项目中,我接到编写ORACLE存储历程的任务,我是程序员,脑袋里只有一些若何利用CALLABLE接口调用存储历程的经验,一时不知若何下手,我查阅了一些资料,通过实践发现编写ORACLE存储历程是非常不简单的工作,即便上路今后,调试和考证非常麻烦.简单地讲,Oracle存储历程就是存储在Oracle数据库中的一个程序.
一. 概述
Oracle存储历程开辟的要点是:
? 利用Notepad文本编辑器,用Oracle PL/SQL编程语言写一个存储历程;
? 在Oracle数据库中成立一个存储历程;
? 在Oracle数据库中利用SQL*Plus工具运行存储历程;
? 在Oracle数据库中改正存储历程;
? 通过编译错误调试存储历程;
? 删除存储历程;
二.环境配置
包含以下内容:
? 一个文本编辑器Notepad;
? Oracle SQL*Plus工具,提交Oracle SQL和PL/SQL 语句到Oracle database.
? Oracle 10g express数据库,它是免费利用的版本;
需求的本领:
? SQL底子知识,包含插入、改正、删除等
? 利用Oracle's SQL*Plus工具的基本本领;
? 利用Oracle's PL/SQL 编程语言的基本本领;
三.写一个存储历程
存储历程利用Oracle's PL/SQL 程序语言编写,让我们写一个什么工作都不做的存储历程,我们可以编译和运行它而不用耽忧会对数据库产生任何侵害.
在Notepad, 写下:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
NULL;
END;
把文件存为skeleton.sql.
让我们一行行遍历这个存储历程:
1 CREATE OR REPLACE PROCEDURE skeleton
2 IS
3 BEGIN
4 NULL;
5 END;
行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句告诉Oracle数据库去成立一个叫做skeleton存储历程, 假如存在就覆盖它;
行2:
IS关键词表明背面将跟随一个PL/SQL体.
行3:
BEGIN关键词表明PL/SQL体的开始.
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需求有一句;
行5:
END关键词表明PL/SQL体的完毕
四.成立一个存储历程
SQL语句CREATE OR REPLACE PROCEDURE在Oracle数据库中成立、编译和保存一个存储历程.
从Window翻开SQL*Plus并且从SQL*Plus登录到你的数据库;翻开skeleton.sql文件.
在SQL>号令提醒符下输入以下号令:
SQL>@skeleton
SQL>/
SQL*Plus装载skeleton.sql文件的内容到SQL*Plus缓冲区并且履行SQL*Plus语句;SQL*Plus 会告诉你存储历程已经被成功地成立.
目前你的存储历程被成立,编译和保存在你的Oracle数据库,我们可以运行它.
五.运行一个存储历程
从SQL*Plus 号令行提醒符运行你的存储历程利用EXECUTE号令,以下:
SQL> EXECUTE skeleton;
SQL*Plus 输出一下信息确信存储历程成功履行: PL/SQL procedure successfully completed.
你也可以在一个无名PL/SQL块内运行你的存储历程,在SQL*Plus号令提醒符下,它看起来像:
SQL> BEGIN
2 SKELETON;
3 END;
4 /
目前我们已经运行了我们的存储历程,我们若何改正它呢?
六.改正一个存储历程
让我们写一个输出字符串"Hello World!"的存储历程,用Notepad翻开你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 历程调用去替换NULL语句,以下所示:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
保存到文件skeleton.sql.
从SQL*Plus号令行, 翻开文件skeleton.sql .
SQL> @skeleton
SQL>
1 CREATE OR REPLACE PROCEDURE skeleton
2 IS
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE('Hello World!');
5* END;
SQL> /
SQL*Plus 告诉你存储历程成功成立并输出提醒信息:Procedure created.
SQL>
用EXECUTE 号令运行你的存储历程:
SQL> EXECUTE skeleton;
SQL*Plus显示存储历程运行成功:PL/SQL procedure successfully completed.
我们想要的输出字符串 "Hello World!"没有出来,在显示一个DBMS_OUTPUT.PUT_LINE 后果前需求运行一个SET号令,在SQL*Plus 号令行提醒符,键入:
SQL> SET SERVEROUTPUT ON
再次履行你的存储历程:
SQL> EXECUTE skeleton;
目前后果输出了:Hello World!
PL/SQL procedure successfully completed.
七.调试一个存储历程
当调试一个存储历程时,遵守一样的步骤,改正SQL文件,成立存储历程,履行存储历程,按照编译器反馈的出错信息举行改正,这一步是非常烦琐的,需求依靠经验.
在实际的商用存储历程的开辟调试历程中,由于触及很多表、范例、光标、循环、条件等复杂的逻辑,和PL/SQL语句的机动应用,编译时会产生很多错误提醒信息,程序员在按照这些错误信息定位,举行改正,再编译最后得到精确的构造;
八.放弃一个存储历程
假如在数据库中你不在需求一个存储历程你可以删除它,SQL语句 DROP PROCEDURE 完成从数据库中删除一个存储历程,DROP PROCEDURE 在SQL中被归类为数据定义语言(DDL) 类操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE..
在SQL*Plus 号令提醒符下,利用DROP PROCEDURE SQL 语句删除你的叫做skeleton的存储历程:
SQL> DROP PROCEDURE skeleton;
SQL*Plus assures us the procedure has been removed:
Procedure dropped.
总结
本文具体谈论了若何利用Oracle工具开辟Oracle商用存储历程的步骤.最后在存储历程的利用中大概是程序直接调用,也大概被触发器调用.
以上是“若何开辟ORACLE存储历程-开辟技术[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |