oracle的存储过程指南

   Create procedure procedue_name
  [@parameter data_type][output]
  [with]{recompile|encryption}
  as
  sql_statement


解释 output:表示此参数是可传回的.

with {recompile|encryption}

recompile:表示每次执行此存储过程时都重新编译一次

encryption:所创建的存储过程的内容会被加密

表book的内容如下

  编号  书名              价格
  001   C语言入门          $30
  002   PowerBuilder报表开发  $52

实例1:查询表Book的内容

create proc query_book
   as
   select * from book
  go
exec query_book


实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额

  Create proc insert_book
  @param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
  with encryption ---------加密
  as
  insert book(编号,书名,价格) Values(@param1,@param2,@param3)
  select @param4=sum(价格) from book
 go


执行例子:

 declare @total_price money
 exec insert_book '003','Delphi 开发指南',$100,@total_price
 print '总金额为'+convert(varchar,@total_price)
 go


实例3:设有两个表为Product,Order,其表内容如下:

产品编号    产品名称  客户订数  
      001       钢笔     30    
      002       毛笔     50    
      003       铅笔     100    
   Order 
      产品编号     客户名   客户订金
      001       南山区   $30
      002       罗湖区   $50
  003       宝安区   $4


请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,

总金额=订金*订数,临时表放在存储过程中

代码如下:

   Create proc temp_sale
   as
    select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额
    into #temptable from Product a inner join Order b on a.产品编号=b.产品编号
  if @@error=0
    print 'Good'
  else
    print 'Fail'
   go

时间: 2024-12-08 16:09:29

oracle的存储过程指南的相关文章

一个简单的oracle分页存储过程的实现和调用

oracle|存储过程|分页|oracle|存储过程|分页 在看了众多的分页存储过程以后发现都是针对sqlserver的,而没有oracle的,因此想写一个关于oracle的存储过程,因为我用到的数据库是oracle.---------------------------------------------------------------------------------------------------------------------------------------------

如何在Delphi中调用oracle的存储过程返回数据集

oracle|存储过程|数据 选自CSDN http://search.csdn.net/Expert/topic/2280/2280860.xml?temp=2.169436E-02 论坛中JCC0128 网友的发言 [delphi+oracle报表解决方案(一)]delphi中调用oracle的存储过程(分带返回游标,不返回值两种)  关键字: delphi ,oracle存储过程,游标,返回数据集,报表 注:delphi 6+ oracle 8.1.6 一.创建包与包体 1.附:建表aac

VFP中调用Oracle的存储过程

VFP由于其通俗.易用,深受广大开发人员的欢迎,但其安全性与稳定性却不十分完善.而Oracle在此方面的优点是有口皆碑的,两者结合,能开发出高效.安全和稳定的应用系统.有关在VFP中调用Oracle存储过程方法的资料较少,下面就此举一简单例子,希望起到抛砖引玉的作用. 此方法适用于用VFP作前端开发工具.Oracle作后端数据库的C/S开发方法. 在Oracle端,建有如下表和存储过程: 表gzb如下: SQL〉select * from gzb; ID GZ 1 3050 3 2500 2 4

Oracle数据库存储过程与权限

在执行存储过程时,我们可能会遇到权限问题 ● 定义者权限存储过程 ● 调用者权限存储过程 在数据库中创建存储过程时,定义者权限是缺省模式 当指定AUTHID CURRENT_USER关键字后,便是调用者权限存储过程 他俩之间最根本的差异在于role能否在存储过程中生效 ㈠ 定义者权限存储过程问题 定义者权限存储过程role无效,必须要有显式授权 即便是拥有dba role,还是不能访问不同用户的表 sys@EMREP> grant connect,resource to u1 identifie

oracle数据库存储过程 截取数据

问题描述 oracle数据库存储过程 截取数据 oracle数据库存储过程问题: 传入一个字符串(字符串格式如:"辣椒_食品,西红柿_食品,板鞋_服饰,植物油_食品,领带_食品,--") 现在我想根据","来截断字符串存储到数组(其他变量也行).然后就可以得到这样的数组string[] arr={"辣椒_食品","西红柿_食品",--} 然后循环遍历这个数组,循环每条数据的时候再根据"_"来分割数据,分割完

pl sql test调式-oracle plsql存储过程调试 如何传入date参数

问题描述 oracle plsql存储过程调试 如何传入date参数 begin -- Call the procedure aa_get_lock_card_id(p_member_id => :p_member_id, p_month_max_times => :p_month_max_times, p_now_time => :p_now_time, p_start_time => :p_start_time, p_sys_info_info => :p_sys_inf

大量数据执行-oracle在存储过程中执行update语句

问题描述 oracle在存储过程中执行update语句 在存储过程中经过加工对表执行update语句,但表的数据太大了,2百多万数据的表我就要执行1个多小时,,,8千多万数据的表要怎么办啊? 解决方案 有这样的思路你可参考下: 思路1.写存储过程,引入loop循环,分批次更新.提交: 思路2.以nologging形式重新建表,按新规则把数据插过来:

关于oracle中存储过程的。在线等,求大神们解答

问题描述 关于oracle中存储过程的.在线等,求大神们解答 select hmv.hy_time_stamp mm.cu_name mm.meter_numberfrom (select hc.hy_name_last as cu_namehm.hy_meter_number as meter_number from hy_customer hchy_metainfo_customer hmc hy_meter_point hmp hy_metainfo_meter hmm hy_meter

oracle 批量存储过程加密,怎么加密?谢谢!

问题描述 oracle 批量存储过程加密,怎么加密?谢谢! oracle 批量存储过程加密,怎么加密?请各位大侠支支招 解决方案 加密oracle存储过程oracle 加密存储过程如何加密Oracle中的存储过程 解决方案二: http://www.2cto.com/database/201305/212294.html