ストアドプロシージャ(ストアドプロシージャ)貯蔵後にコンパイルされたデータベースにSQL文の特定のセットを完了するための関数のセットです。名前は、ユーザによって指定されたパラメータを(パラメータを持つストアドプロシージャ場合)、それを実行するストアドプロシージャを与えます。ストアドプロシージャは、任意の適切に設計されたデータベース・アプリケーションは、ストアドプロシージャを使用する必要があり、データベース内の重要な課題です。
長所:高効率、再利用性、高セキュリティ
構造ストアドプロシージャ:宣言プロセス、処理部は、異常処理が格納されている(省略可):Oracleストアドプロシージャの3つの部分から構成。
私たちは、ストアドプロシージャについて詳細に説明する次
ストアドプロシージャの構文
作成:キーワードを作成します。
または交換:ストアドプロシージャの名前が作成されている場合、あなたはそれを省略することができ、与えられずに、同じ名前を持つこの二つのキーワードをストアドプロシージャを置き換えることができます。
手順:ストレージ・プロセスは、ストアドプロシージャを作成するためのものです
pro_name:ストアドプロシージャの名前。
(パラメータ):パラメータ記憶処理はパラメータの書き込みパラメータのストアドプロシージャ指定されたデータ型を参照して省略することができます。
:もありますように書くことができます。
plsql_sentences:PL / SQL文で、彼は、ストアドプロシージャの実装の主な機能です。
dowith_sentences:例外処理文は、PL / SQL文、省略することができます。
1 作成 【または交換] プロシージャ pro_nameを(参数)として 2が 始まる 3 plsql_sentencesと、 4 [ 例外] 5 [ dowith_sentences。] 6 端 pro_name。
ストアドプロシージャを学びます
ストアドプロシージャを作成(PL / SQL)
最初のオープンPLSQLソフトウェアは、手続きにトップ右であなたのストアドプロシージャで、左、上のフォルダを見つける - 新規 - ストアドプロシージャ名とパラメータを入力します(名前を変更することができ、パラメータができ、一時的物質)
いいえパラメータんストアドプロシージャ
いくつかの初心者のための上記の説明は、それでは、ストアドプロシージャについての皆を知ることができるように例を使ってみましょう、理解することはそう簡単ではないかもしれません。
まず、以下のようにされているOracle(テーブル名T_USER)テーブル構造のテーブルを作成します
例:データがt_userテーブルを追加するには、パラメータなしでストアドプロシージャを記述します。
1 create or replace procedure test1 as 2 begin 3 insert into t_user values('1','张三',22,1,'13718770909',sysdate); 4 commit; 5 end test1;
要注意:test1为存储过程的名字,commit意思是提交事务,end后面跟的一定是存储过程的名字。
有参存储过程
那么通过上面的例子我们就基本知道了无参存储过程的大概。那么接下来让我们看看有参存储过程是怎么写的。
首先我们先介绍一下存储过程的参数
存储过程可以接受多个参数,参数模式包括三种:
in:输入类型 默认 不可修改 可以省略
out:输出类型 只能等待被赋值 不可省略
in out:兼顾上面两种 不可省略 不建议使用这种,如果遇到这种情况,完全可以拆开成两个参数
例子:写一个有参的存储过程,向t_user表中添加一条数据。要求插入的数据都要用参数传递过来的数据。
1 create or replace procedure test2(id varchar2,name varchar2,age number,sex number,tel varchar2,create_time date) is 2 begin 3 insert into t_user values (id,name,age,sex,tel,create_time); 4 commit; 5 end test2;
要注意:test2为存储过程的名称,每个参数要表明类型,但是不能指定长度,参数的名称可以随便起。
存储过程的检查
一个存储过程在创建之后,需要我们验证一下语法是否正确,方法是点击下图的执行按钮(齿轮) 如果最下面出现了编译成功,那么说明此存储过程语法上没有问题。如果有报错,就根据提示信息进行修改即可。
存储过程的调用
写好的存储过程,在oracle中怎么调用呢?
首先打开一个sql操作页面(文件--新建-sql窗口),根据我们所写的存储过程的参数,可以使用call关键字进行调用
比如上面两个例子(test1,test2),他们的调用方法分别为
1 --无参调用方法 2 call test1() 3 --有参调用方法 4 call test2('11','张三',11,0,'13567667897',sysdate)
存储过程的删除
当一个存储过程不再被需要的时候,要将此过程从内存中删除,以释放相应的内存空间,方法一共有两种
1. 语句删除L:drop procedure test1 //test1是存储过程的名称
2. 使用pl/sql工具,直接在左侧的procedures文件夹中找到那个存储过程文件,右键删除即可。
存储过程的调试
在左侧的procedures文件夹中找到你要调试的存储过程文件,右键选择测试,之后按下图操作
上面的红框中的五个按钮 从左到右分别为:运行,单步进入(重要),单步跳过,单步退出,运行到下一个异常,一般我们只用到单步进入就可以了。
操作顺序为:点击运行按钮,之后一步步点击单步进入按钮即可。
特别注意:我们在存储过程中可以写dbms_output.put_line('ok'); 括号中的ok为参数 类似于java里的System.out.println("ok"); 可以在DBMS输出中看到
接下来会继续更新存储过程中的一些其他的知识及技巧和用法。