ORACLE存储过程
来源:互联网 发布:维生素 抑郁症 知乎 编辑:程序博客网 时间:2024/06/04 19:18
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
由此可见编写存储过程可以提高查询和存储的效率。
以下以oracle为例,做一些简单的存储过程编写,利用navicat作为编辑器,这与PL/SQL中某些语句输入方式不太相同。
首先列出表的一些信息:用户(模式):MEDIVH,表名:admin
创建的sql语句:
1)无返回值的存储过程(多用于插入)
2)返回单个数据值的存储结构
运行此过程会弹出输入框,输入数据库中已有数据的相关字段即可出现结果。
3)多组返回结果
首先创建自己的一个包,用来定义返回类型集,
在其他中选择包,新建包:
--------------------------------------
JAVA中调用,
使用CallableStatement对象。
CallableStatement 对象为所有的DBMS 提供了一种以标准形式调用已储存过程的方法。
示例:
由此可见编写存储过程可以提高查询和存储的效率。
以下以oracle为例,做一些简单的存储过程编写,利用navicat作为编辑器,这与PL/SQL中某些语句输入方式不太相同。
首先列出表的一些信息:用户(模式):MEDIVH,表名:admin
创建的sql语句:
<span style="font-size:14px;">/*Navicat Oracle Data TransferOracle Client Version : 10.2.0.5.0Source Server : medivhSource Server Version : 100200Source Host : 192.168.1.103:1521Source Schema : MEDIVHTarget Server Type : ORACLETarget Server Version : 100200File Encoding : 65001Date: 2014-07-22 09:47:46*/-- ------------------------------ Table structure for admin-- ----------------------------DROP TABLE "MEDIVH"."admin";CREATE TABLE "MEDIVH"."admin" ("username" VARCHAR2(24 BYTE) NULL ,"pwd" VARCHAR2(64 BYTE) NULL ,"id" NUMBER(24) NULL)LOGGINGNOCOMPRESSNOCACHE;-- ------------------------------ Records of admin-- ----------------------------INSERT INTO "MEDIVH"."admin" VALUES ('LISI', '834C3D60D84E11303F54A7DABAACB567', '2');INSERT INTO "MEDIVH"."admin" VALUES ('W', 'O', '11');INSERT INTO "MEDIVH"."admin" VALUES ('zhangsan', 'wow', '3');INSERT INTO "MEDIVH"."admin" VALUES ('MEDIVH', '834C3D60D84E11303F54A7DABAACB567', '1');INSERT INTO "MEDIVH"."admin" VALUES ('2', '2', '2');</span>
1)无返回值的存储过程(多用于插入)
<span style="font-size:14px;">CREATE OR REPLACEPROCEDURE "TEST_PROP" ASBEGIN INSERT INTO "admin" VALUES ('W','O',2); COMMIT;END; </span>
2)返回单个数据值的存储结构
<span style="font-size:14px;">CREATE OR REPLACEPROCEDURE "FIRST_PROC"(TEMP_USERNAME IN VARCHAR2,TEMP_ID OUT NUMBER) IS NUM NUMBER;BEGIN SELECT MEDIVH."admin"."id" ID INTO NUM FROM MEDIVH."admin" WHERE MEDIVH."admin"."username" = TEMP_USERNAME; TEMP_ID := NUM;END;</span>
运行此过程会弹出输入框,输入数据库中已有数据的相关字段即可出现结果。
3)多组返回结果
首先创建自己的一个包,用来定义返回类型集,
在其他中选择包,新建包:
<span style="font-size:14px;">CREATE OR REPLACEPACKAGE MY_PACKAGE ASTYPE MY_CURSOR IS REF CURSOR;END;</span>
--------------------------------------
JAVA中调用,
使用CallableStatement对象。
CallableStatement 对象为所有的DBMS 提供了一种以标准形式调用已储存过程的方法。
示例:
<span style="font-size:14px;"> CallableStatement proc=null; proc=connection.prepareCall("{call first_proc(?,?)}");//connection = DriverManager.getConnection(oracleUrlToConnect,"xxxx", "xxxx"); proc.setString(1, "medivh"); proc.registerOutParameter(2, Types.NUMERIC);</span>
0 0
- Oracle:存储过程,存储函数
- Oracle-存储过程 存储函数
- Oracle存储过程、存储函数
- oracle 存储函数,存储过程
- Oracle存储过程
- 调试oracle存储过程。
- ORACLE 存储过程实战
- Oracle 存储过程
- oracle存储过程使用
- Oracle 创建存储过程
- 调试oracle存储过程
- oracle java存储过程
- 创建Oracle存储过程
- 加密oracle存储过程
- oracle存储过程分页
- oracle存储过程笔记
- ORACLE存储过程--注意事项
- oracle procedure 存储过程
- Navicat For Mysql快捷键
- linux gbk 转 utf-8
- ServKit前身phpnow,安装配置,及常见问题
- Echarts 后台交互
- iOS 学习Block小结
- ORACLE存储过程
- 『黑马程序员』第九话<正则表达式>
- AD9通过Excel快速制作原理图符号
- POJ9384 迷宫问题(基础BFS)
- html显示一个长的错误单词换行,内容自动换行
- 入木三分学网络第一篇--VRRP协议详解-----(2)
- adb修改hosts方法
- linux 进程管理-----pid哈希链表
- C++内存分配方式详解