热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oracle中的存储过程使用

oracle中的存储过程使用一存储过程的基本应用1创建存储过程(SQL窗口)createorreplaceprocedureupdate_staffasbeginupdatestaffsetname'xy';commit;www.2cto.comen...

oracle中的存储过程使用
 
一存储过程的基本应用
 
1 创建存储过程(SQL窗口)
create or replace procedure update_staff
as
begin
       update staff set name = 'xy';
       commit;  www.2cto.com  
end update_staff;
存储过程适合做更新操作,特别是大量数据的更新
 
2 查看存储过程在数据字典中的信息(SQL窗口)
select object_name,object_type,status from user_objects where lower(object_name) = 'update_staff'
 
3 查看存储过程语句(SQL窗口)
 
select * from user_source where lower(name) = 'update_staff'
 
4 执行存储过程(Command窗口)
execute update_staff;
 
5 存储过程的优点
① 提高数据库执行效率。使用SQL接口更新数据库,如果更新复杂而频繁,则需要频繁得连接数据库。
② 提高安全性。存储过程作为对象存储在数据库中,可以对其分配权限。
③ 可复用性。
   www.2cto.com  
二带输入参数的存储过程
 
1 创建存储过程(SQL窗口)
create or replace procedure update_staff(in_age in number) as
begin
        declare newage number;
        begin
                newage := in_age + 10;
                update staff set age = newage;
                commit;
        end;
end update_staff;
 
2 执行存储过程(Command窗口)
execute update_staff(10);
  www.2cto.com  
3 默认值
只有in参数可以有默认值,比如
create or replace procedure update_staff(in_name in varchar2,in_age in number default 20)
调用时可只写execute update_staff('xy');
 
三带输出参数的存储过程
 
1 创建存储过程(SQL窗口)
create or replace procedure update_staff (in_age in number,out_age out number) as
begin
       update staff set age = in_age;
       select age into out_age from student where num = 1;
       commit;  www.2cto.com  
end update_staff;
存储过程没有显示制定返回值,但输出参数可以输出
 
2 输出存储过程结果(Command窗口)
set serverout on;
declare age number;
begin
 update_staff(20,age);
 dbms.output.put_line(age);
end;
 
四带输入输出的存储过程
 
其中最典型的应用是交换两个数的值
  www.2cto.com  
1 创建存储过程(SQL窗口)
create or replace procedure swap (param1 in out number, param2 in out number) as
begin
       declare param number;
       begin
               param:=param1;
               param1:=param2;
               param2:=param;
       end;
end swap;
 
2 输出存储过程结果(Command窗口)
set serverout on;
declare p1 number:= 25;
p2 number:=35;
begin
swap(p1,p2);
dbms_output.put_line(p1);
end;
   www.2cto.com  
五参数总结
 
①输入参数:有调用者传递给存储过程,无论存储过程如何调用该参数,该参数的值都不能被改变,可以认为该参数的值是只读的。
②输出参数:可以作为返回值来用。可以认为可写。
 
③输入输出参数:这中类型的参数和java方法中的参数最像,传入方法,可读可写(final标识符除外)。
④参数顺序总结如下:具有默认值的参数应该位于参数列表的末尾,因为有时用户需要省略该参数。没有默认值的参数可以遵循"in -> out -> in out"。
 

推荐阅读
  • Pikachu平台SQL注入漏洞详解
    本文详细介绍了SQL注入漏洞的基本原理、攻击流程、不同类型注入点的识别与利用方法,以及基于union联合查询、报错信息、布尔盲注、时间盲注等多种技术手段的信息获取方式。同时,探讨了如何通过SQL注入获取操作系统权限,以及HTTP Header注入和宽字节注入等高级技巧。最后,提供了使用SQLMap自动化工具进行漏洞测试的方法和常见的SQL注入防御措施。 ... [详细]
  • mybatis相关面试题 ... [详细]
  • 房管局的主要部门及其职能
    本文详细介绍了房管局内部设置的主要部门及其具体职责,包括办公室、行政服务处、计划财务处等多个核心部门,旨在为公众提供一个全面了解房管局运作机制的窗口。 ... [详细]
  • NetCat,因其强大的多功能性和灵活性,被网络安全领域的专业人士誉为‘瑞士军刀’。本文将详细介绍NetCat的功能、应用场景及其在不同平台上的使用方法。 ... [详细]
  • 网络层详解——湖南科技大学《计算机网络微课堂》笔记4.1
    本文详细介绍了网络层的主要路由协议,包括RIP、OSPF、BGP的工作原理及其特点,并探讨了IPv4数据报的首部格式、ICMP协议以及虚拟专用网(VPN)和网络地址转换(NAT)的相关知识。 ... [详细]
  • C++基础教程:探索随机数生成
    生活充满了不确定性,这些不确定因素使我们的生活更加丰富多彩。本文将探讨如何在C++编程中利用随机数增加程序的趣味性和实用性。 ... [详细]
  • 随着互联网技术的发展,家庭和企业网络的安全问题日益凸显。本文探讨如何通过合理配置路由器来抵御外部恶意攻击,确保网络环境的安全性。 ... [详细]
  • 详解JavaScript的原型与原型链_javascript技巧
    这篇文章主要为大家详细介绍了JavaScript原型与原型链,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下, ... [详细]
  • 探讨如何利用Visual Basic (VB) 将十六进制或二进制字符串写入Windows注册表的方法。 ... [详细]
  • 本文详细介绍了苹果6s设备上实施性能保护的具体步骤,包括减少定位服务使用、控制后台应用刷新、调整通知中心设置等方面。 ... [详细]
  • 解决 IIS 无法访问 .pnts 文件的问题
    本文详细介绍了在使用 IIS 服务器时遇到的 .pnts 文件无法访问的问题及其解决方案。通过正确配置 MIME 类型,可以轻松解决这一常见问题。 ... [详细]
  • 本文详细探讨了电梯、杯子、桌子和洗衣机的经典测试案例,包括需求测试、界面测试、功能测试等多个方面,旨在提供全面的测试参考。 ... [详细]
  • 本文详细探讨了ArrayList、LinkedList及CopyOnWriteArrayList三种Java集合类的线程安全性、内部数据结构以及各自的性能特点,帮助开发者根据实际需求选择合适的集合类型。 ... [详细]
  • 本文旨在探讨Linux系统中两种重要的进程间通信(IPC)机制——System V和POSIX的标准及其特性,为开发者提供深入的理解。 ... [详细]
  • 微服务架构详解及其入门指南
    本文详细介绍了微服务的基本概念、发展历程、与传统架构的区别及优势,并探讨了适合采用微服务架构的场景。此外,文章还深入分析了几个主流的微服务开发框架,特别是Spring Cloud的组成和特点。 ... [详细]
author-avatar
real存在尹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有