oracle 存储过程(1)
--建一张user_info表
create table user_info (
id varchar2(10),
name varchar2(20),
password varchar2(20),
address varchar2(30)
);
--创建存储过程,作用是向user_info表中添加数据
create or replace procedure adduser(
pro_id user_info.id%type,
pro_name user_info.name%type,
pro_password user_info.password%type,
pro_address user_info.address%type
)
as
begin
insert into user_info(id,name,password,address)
values(pro_id,pro_name,pro_password,pro_address);
end adduser;
--调用存储过程,并判断是否执行成功
declare
new_id user_info.id%type:='0010';
new_name user_info.name%type:='林某';
new_password user_info.password%type:='12345678';
new_address user_info.address%type:='广州';
begin
adduser(new_id,new_name,new_password,new_address);
dbms_output.put_line('用户'||new_name||'已经成功插入');
end;
--在程序中可以通过exec()调用上面的存储过程
exec adduser('0001','高高','123456','南昌');
存储过程本质上就是对业务关系复杂的 sql 语句的封装。sql 语句以程序块的形式被封装在了数据库中了。写好了以后,无论是 java,还是 .net ,抑或其他开发语言,可以像使用 sql 语句那样随意调用。这就是数据库开发。
另外,过程与函数的差别:函数与过程有很多相似的地方,但也有一些差别,其中的一点就是,过程的参数可以有三种模式(IN、OUT、IN OUT),而函数只有一种(IN),因为使用函数的目的是传入0或多个参数,返回单一的值,想让函数返回多个值是一种不良的编程习惯,我们应该加以改正。
oracle 存储过程(1)的更多相关文章
- oracle 存储过程
来自:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 I ...
- Oracle存储过程语法
原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- Oracle存储过程(转)
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程中异常Exception的捕捉和处理
Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...
- Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER
关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...
- ORACLE存储过程学习
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
- C# 获取 oracle 存储过程的 返回值1
/// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename"& ...
随机推荐
- Java基础第3章
- 一箭N雕:多任务深度学习实战
1.多任务学习导引 多任务学习是机器学习中的一个分支,按1997年综述论文Multi-task Learning一文的定义:Multitask Learning (MTL) is an inducti ...
- CVE-2015-0057 POC构造 & 利用分析(2015.7)
CVE-2015-0057 POC构造 & 利用分析 主要内容: 构造POC 利用思路 0x00 初探 从这篇文章可以获知: 1.问题出在 win32k!xxxEnableWndSBArrow ...
- -webkit-overflow-scrolling
-webkit-overflow-scrolling 属性 控制元素在移动设备上是否使用滚动回弹效果. 取值 auto 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止. touch 使 ...
- SpringMVC的@ModelAttribute注解简单使用(用户修改信息)
例如有一个User对象,我们要修改他的值,但是不能修改他的密码!通过表单提交数据之后,password为null,会把原对象的passwod覆盖掉.这时候可以用@ModelAttribute注解处理. ...
- SpringMVC通过注解获得参数
SpringMVC可以通过RequestParam注解来映射获得参数,具体用法如下: 例子: 配置过程省略 1.新建controller类 package com.loger.controller; ...
- C# WebBrowser禁止F5刷新
在用写一个桌面软件的过程中,用到webbrowser实现界面.这时有一个禁止webbrowser通过f5按键进行刷新的要求.本着边做边学的原则,本菜查了一下百度,原来这么简单,代码如下: this.w ...
- 关于STM32的IO口速率问题
输入模式可以不用配置速度,但是输出模式必须确定最大输出频率.当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz.10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来 ...
- hbase 无法操作与hadoop的安全模式的原因
最近使用hbase时,运行zookeeper的机子没有正常关闭zookeeper就关机了,导致开机后整个hbase集群无法使用,表现为master的localhost:60010 无法登录,使用hba ...
- Generating Faces with Deconvolution Networks
用深度学习做人脸合成,website:https://zo7.github.io/blog/2016/09/25/generating-faces.html 受启发于 Learning to Gene ...