pl/sql基础知识—过程快速入门
n 过程
过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数可以将执行部分的数据传递到应用环境,在sqlplus中可以使用create procedure命令来建立过程。
实例如下:
①请考虑编写一个过程,可以输入雇员名,新工资,可修改雇员的工资
②如何调用过程有两种方法:
exec过程名(参数值…)
call 过程名(参数值…)
n 过程的进一步讲解
oracle过程,可以指定参数是输入的参数还是输出的参数,基本语法如下:
|
注意:变量如果没有写in,默认是输入in
变量类型不要指定大小,
特别说明:当我们编写过程时,可以输入show
error来显示具体的错误
SQL> create or replace procedure pro5(in_ename in
varchar2,in_newsal in number) is
2
begin
3
update emp set sal=in_newsal where ename=in_ename;
4
end;
5 /
Procedure
created
SQL>
exec pro5('SMITH',100);
PL/SQL
procedure successfully completed
如何在java程序中调用过程
需求说明:使用java调用刚才写的过程
package com.lsz.test;
import java.sql.*;
public class TestProcedure {
public static void main(String[] args) {
Connection ct=null;
CallableStatement cs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
cs=ct.prepareCall("{call pro5(?,?)}");
cs.setString(1,"SMITH");
cs.setFloat(2,456.5f);
cs.execute();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
}
catch (Exception e2) {
}
}
}
}
对SQLHelper类升级,添加一个可以调用存储过程的方法
public static void executeProcedure(String
sql,String[] parameters){
try {
ct=DriverManager.getConnection(url,username,password);
cs=ct.prepareCall(sql);
if(parameters!=null&&!"".equals(parameters)){
for(int i=0;i<parameters.length;i++){
cs.setString(i+1,parameters[i]);
}
}
cs.execute();
} catch (Exception e) {
e.printStackTrace();
throw new
RuntimeException(e.getMessage());
}finally{
close(rs,cs,ct);
}
}
课堂小练习:编写一个过程,可以接受ID和薪水,更新薪水,如果ID不存在,需要在exception中捕获,并给出提示!需要在控制台和java程序中都调用
create
or
replace
procedure
pro1(v_empno
number,v_sal
number)
is
begin
update
emp set
sal=v_sal
where
empno=v_empno;
exception
when
no_data_found then
dbms_output.put_line('你输入的编号有误!');
end;
以上代码不会出现异常,因为no_data_found是在select语句中使用的。
pl/sql基础知识—过程快速入门的更多相关文章
- pl/sql基础知识—函数快速入门
n 函数 函数用于返回特定的数据,当建立函数式,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据,我们可以使用create function来建立函数,实际案例: ...
- web前端基础知识及快速入门指南
web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...
- pl/sql基础知识—定义并使用变量
n 介绍 在编写pl/sql程序是,可以定义变量和常量:在pl/sql程序中包括有: ①标量类型(scalar) ②复合类型(composite) ③参照类型(reference) ④lob(lar ...
- PL/SQL 基础知识简介
1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,I ...
- PL/SQL基础知识
Oracle之PL/SQL学习笔记 自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了 ...
- pl/sql基础知识—pl/sql块介绍
n 介绍 块(block)是pl/sql的基本成型单元,编写pl/sql程序实际上就是编写pl/sql块.要完成相对简单的应用功能,可能只需要编写一个pl/sql块:但是如果要想实现复杂的功能,可能 ...
- 【PL/SQL基础知识】结构
1.pl/sql块的结构 declare --声明的变量.类型.游标 begin --程序的执行部分(类似于java的main()方法) exception --针对begin块中出现的异常 ---w ...
- pl/sql基础知识—触发器
n 触发器简单介绍 触发器是指隐含执行的存储过程,它不是由程序员或者是DBA来显式调用,而是因为某个操作引发执行的.当定义触发器时,必须要指定触法的事件和触发的操作,常用的触发事件包括insert, ...
- pl/sql基础知识—包
n 包 包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成. 为什么需要包:使用包可以更好的管理自己写的函数.过程 ①我们可以使用create package命令来创建包: creat ...
随机推荐
- 详解如何挑战4秒内百万级数据导入SQL Server(转)
对于大数据量的导入,是DBA们经常会碰到的问题,在这里我们讨论的是SQL Server环境下百万级数据量的导入,希望对大家有所帮助.51CTO编辑向您推荐<SQL Server入门到精通&g ...
- jeecms框架单点登录功能的实现
单点登录的功能实现主要原理: 1: 在点击登录按钮的时候使用reponse.addCookie()方法向浏览器发送cookie: 2: 在前段拦截器中的request.getCookie()在接收到设 ...
- MyBatis-Spring(四)--MapperFactoryBean实现增删改查
上一篇文章中提到,使用SqlSessionTemplat时需要输入一长串字符串来获取mapper,这种方式IDE不会检查程序的准确性并且很容易出错,所以这篇文章介绍另一种可以避免这种问题,并且也可以使 ...
- CentOS 6.5 使用Apache的VirtualHost映射SVN端口
vi /etc/httpd/conf.d/subversion #修改Apache的SVN配置,如果没有配置过则略过 #<Location /svn> # DAV svn # SVNPar ...
- [转载] 使用C/C++语言编写基于DSP程序的注意事项
原文地址:『转』使用C/C++语言编写基于DSP程序的注意事项作者:skysmile 1.不影响执行速度的情况下,可以使用c或c/c++语言提供的函数库,也可以自己设计函数,这样更易于使用“裁缝师 ...
- mac上python3.x安装 图文详解
mac安装brew报错及解决办法 https://blog.csdn.net/zdp072/article/details/82563320 更改脚本中的资源链接,替换成中国科学技术大学的镜像 htt ...
- python中os的常用方法
1.os模块:os模块在python中包含普遍的操作系统功能,下面列出了一些在os模块中比较有用的部分. os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符 ...
- message d:\WEB_APP_QuChongFu\file\五月.xlsx (文件名、目录名或卷标语法不正确。)
原因是 文件名或文件夹名中不能出现以下字符:\ / : * ? " < > | 但是后台读取到的附件的文件路径就是这样的 网上大佬说了,这样处理 rep ...
- jnhs[未解决]无法使用选定的hibernate配置文件建立数据库连接.请验证hibernate.cfg.xml中的数据库连接详情信息
工程可以正常的使用读写数据库,当然model和model.hbm.xml文件是自己写的. 解决中
- git仓库远程连接GitHub
1 先下载git for windows 然后一直点下一步安装. 2 安装之后,选择git gui.生成ssh 链接 git 公钥. 用命令也可以: $ ssh-keygen -t rsa -C &q ...