Oracle之pl/sql编程(一)函数,过程,包
pl/sql是什么?
pl/sql是oracle在标准sql语言上的扩展。不仅允许嵌入sql语言,还可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误。
作用:过程,函数,触发器是用pl/sql编写的且存在于在oracle中,可以在java程序中调用,pl/sql强大的数据库过程语言。
1、创建一个表:
SQL> create table mytest(name varchar2(30),passwd varchar2(30));
2、创建过程
SQL> create procedure sp_prol is
begin
--执行部分
insert into mytest('hjadsfhas','sdkhfdsj');
end;
/
也可以使用(replace 表示如果有sp_prol就替换)
SQL> create or replace procedure sp_prol is
2 begin
3 --执行部分
4 insert into mytest('hjadsfhas','sdkhfdsj');
5 end;
6 /
show error ————————查看错误
正确的过程创建
SQL> create or replace procedure sp_prol is 2 begin3 insert into mytest values('hansjd','2sduf');4 end;5 /Procedure created
3、执行过程
exec 过程名;
①exec 过程名 (参数值1,参数值2,。。。)
②call 过程名(参数值1,参数值2,。。。)
4、删除过程
drop procedure 过程名
使用pl/sql编写模块时,pl/sql的基础单位是块 ,其包括过程(存储过程),函数,触发器,包
编写规范:
①注释
单行注释 — —
多行注释/* */
②标识符号的命名规范
1、当定义变量时,建议使用v_为前缀,
2、定义常量时,建议使用c_为前缀
3、当定义游标时,使用_cursor作为后缀
4、定义例外时,使用e_为 前缀 e_error
图1
实例1—之包括执行部分的pl/sql块
set serveroutput on ——打开输出选项
begin
dbms_output.put_line('hello');
end;
dbms_output是oracle所提供的包(类似于java的开发包),该包包含一些过程,put_line就是dbms_output包的一个过程。
案例:一
只包括执行部分的pl/sql块
SQL> begin2 dbms_output.put_line('hello world!');3 end;4 /PL/SQL procedure successfully completed
当打开输出选项时:(就会在下面输出内容)
SQL> set serveroutput on;
SQL> begin 2 dbms_output.put_line('你好,智障!0_0');3 end;4 /你好,智障!0_0PL/SQL procedure successfully completed
案例:二
包含定义部分和执行部分的pl/sql
SQL> declare2 v_ename varchar2(5);3 begin4 select ename into v_ename from emp where empno =&no;5 dbms_output.put_line('雇员名'||v_ename);6 exception 7 when no_data_found then 8 dbms_output.put_line('异常');9 end;10 /雇员名SCOTTPL/SQL procedure successfully completed
SQL> declare2 v_ename varchar2(5);--定义字符串常量3 begin4 select ename into v_ename from emp where empno=&no;--将查询的值传给v_ename 5 dbms_output.put_line('雇员名'||v_ename);--字符串连接||6 end;7 /
&:表示要接受从控制台输入变量
过程
用于执行 特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out)。通过在过程中使用输入参数,可以将数据传递到执行部分;通过使用输出参数,可以将执行部分的数据传递到应用环境。
实例:①可以输入雇员名,可以修改雇员的工资,新工资
PL/SQL procedure successfully completedSQL> create procedure sp_pro3(spName varchar2,newSal number) is 2 begin3 update emp set sal = newSal where ename = spName;4 end;5 /
Warning: connection was lost and re-establishedProcedure created
SQL> exec sp_pro3('SCOTT',4768);PL/SQL procedure successfully completed
函数
用于返回特定数据,当建立函数时,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据。
使用create function 来建立函数,实际案例:
SQL> create function sp_fun2(spName varchar2) return 2 number is yearSal number(7,2);3 begin4 --执行部分5 select sal*12+nvl(comm,0) into yearSal from emp where ename = spName;6 return yearSal;7 end;8 /
创建一个函数名为sp_fun2 ,输入sp_Name(形参),返回一个number 叫yearSal 类型为number(7,2);
函数的调用
SQL> var abc number;
SQL> call sp_function('SCOTT') into:abc;
SQL>print abc
包
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。
①使用create package 命令来创建包:
SQL> create package sp_package is 2 procedure update_sal(name varchar2,newsal number);3 function annual_income(name varchar2) return number;4 end;5 /
包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码,包体用于实现包规范中的过程和函数,
②建立包体:
使用create package body 命令
SQL> create or replace package body sp_package is2 procedure update_sal(name varchar2,newsal number)3 is4 begin5 update emp set sal=newsal where ename = name;6 end;7 function annual_income(name varchar2)8 return number is9 annual_salary number;10 begin11 select (sal+nvl(comm,0))*12 into annual_salary from emp where ename=name;12 return annual_salary;13 end;14 end;15 /Package body createdSQL>
包的执行:
SQL> exec sp_package.update_sal('SCOTT',120);PL/SQL procedure successfully completedSQL>
Oracle之pl/sql编程(一)函数,过程,包相关推荐
- Oracle之PL/SQL编程从入门到精通-文心-专题视频课程
Oracle之PL/SQL编程从入门到精通-23941人已学习 课程介绍 本课程基于Oracle数据库,讲解PL/SQLl编程方面的技能,通过本课程的学习,学员能在短的时间内掌握Ora ...
- Oracle的PL/SQL编程前奏之基础技能实战一(匿名子程序)
Oracle的PL/SQL编程之基础技能实战一 一>基础代码检查检查以bm_开头的系统初始化编码表是否有空值.与业务系统相关的编码项不能存在空值,会导致系统业务无法办理.为初始化数据表.在做测试 ...
- oracle pl/sql编程详细,Oracle框架:PL/SQL编程:
PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...
- oracle快捷语句框架中,Oracle框架:PL/SQL编程:
PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...
- Oracle的PL/SQL编程
PL/SQL编程 基本语言风格 PL/SQL把SQL的数据操作功能同过程语言的数据处理功能结合起来. --声明作用 declare --变量.游标.用户自定义类型.异常 variables,curso ...
- 10、oracle下PL/SQL编程基础
ORACLE下的PL/SQL编程基础 PL/SQL语言是程序化程序设计语言,块是PL/SQL编程中的基本结构,其优点在于支持SQL.支持面向对象编程.性能好.可移植性.与sql集成.安全性高等. 1. ...
- Oracle数据库PL/SQL块-存储函数和过程
PL/SQL块 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分 结构如下: declare /*声明部分,在此声明变量,类型及游标*/begin /*执行部分,过程及sql语句, ...
- oracle if函数变量,Oracle数据库——PL/SQL编程
PL/SQL块基本结构 declare -- 声明部分 begin -- 执行部分 exception -- 异常处理部分 end; 声明部分:包含变量.常量定义,由 declare 关键字开始,如果 ...
- 基于oracle 的PL/SQL编程 -变量使用
1. 需要开启的服务: 本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...
最新文章
- ECCV2020 oral | 基于语义流的快速而准确的场景解析
- 交管123缴费显示代理服务器异常,交管12123服务异常怎样办 交管12123 APP服务异常处理办法...
- wifi一键配网smartconfig原理及应用
- Eclipse中导入外部jar包
- 中标麒麟linux系统忘记root密码,中标麒麟(龙芯CPU)--忘记root密码怎么修改?
- Android ViewGroup点击效果(背景色)
- TypeScript里的自定义类型用法
- 前端学习(3251):样式的模块化
- 关于win32与win64的兼容性问题
- 领域驱动设计的简略设计步骤
- UiModeManager设置夜间模式和行车模式
- 【转】超现实的经典语录
- 红帽linux中文系统下载iso,红帽子9.0版下载-redhat linux 9.0 iso下载 简体中文正式版-IT猫扑网...
- 说出来你可能不信,我用 Python 破解了微信聊天记录
- 家谱处理(30 分)(字符串的处理substr)
- uniapp小程序 安卓和ios时间兼容性问题解决方案
- 图片怎么转为html格式,ps图片怎么转换为html ps图片转换为html图文教程
- 从失业到年薪百万,被你忽略的“一技之长”正在膨胀!
- this.$watch(),this.$set(),this.$nextTick()={})
- HTML5的最简单模板
热门文章
- CSS动画效果构成分析
- 20200117:(leetcode)最长回文子串(暴力法)
- 截取文件最后10行_10 行 Python 代码自动清理电脑内重复文件,解放双手
- https访问报错404_电子口岸报关代理委托系统,出现“404”“503”报错怎么办?...
- 移动硬盘无法休眠了?
- vb一个使用URLDownloadToFile实现文件下载的类
- ※部分VB文章汇总B※
- Linux目录结构及解释
- VB:将数字转换为大写中文
- Redis实现计数器---接口防刷---升级版(Redis+Lua)