oracle 存储过程

1.创建过程

   与其它的数据库系统一样,Oracle的存储过程是用PL/SQL语言编写的能完成一定处理功能的存储在数据库字典中的程序。

  语法:

  create [or replace] procedure procedure_name

  [ (argment [ { in| in out }] type,

  argment [ { in | out | in out } ] type

  { is | as }

  <类型.变量的说明>

   ( 注: 不用 declare 语句 )

  Begin

  <执行部分>

  exception

  <可选的异常处理说明>

  end;

  l 这里的IN表示向存储过程传递参数,OUT表示从存储过程返回参数。而IN OUT 表示传递参数和返回参数;

  l 在存储过程内的变量类型只能指定变量类型;不能指定长度;

  l 在AS或IS 后声明要用到的变量名称和变量类型及长度;

  l 在AS或IS 后声明变量不要加declare 语句。

2.使用过程

   存储过程建立完成后,只要通过授权,用户就可以在SQLPLUS 、Oracle开发工具或第三方开发工具来调用运行。Oracle 使用EXECUTE 语句来实现对存储过程的调用。

  语法:

  EXEC[UTE] procedure_name( parameter1, parameter2…);

3.开发过程

   目前的几大数据库厂商提供的编写存储过程的工具都没有统一,虽然它们的编写风格有些相似,但由于没有标准,所以各家的开发调试过程也不一样。下面编写PL/SQL存储过程、函数、包及触发器的步骤如下:

  3.1 编辑存储过程源码使用文字编辑处理软件编辑存储过程源码,要用类似WORD 文字处理软件进行编辑时,要将源码存为文本格式。

  3.2 对存储过程程序进行解释在SQLPLUS或用调试工具将 存储过程程序进行解释;

  在SQL>下调试,可用start 或get 等Oracle命令来启动解释。如:

  SQL>start c:/stat1.sql

  如果使用调试工具,可直接编辑和点击相应的按钮即可生成存储过程。[1]

  3.3 调试源码直到正确我们不能保证所写的存储过程达到一次就正确。所以这里的调试是每个程序员必须进行的工作之一。在SQLPLUS下来调试主要用的方法是:

  1.使用 SHOW ERROR命令来提示源码的错误位置;

  2.使用 USER_ERRORS 数据字典来查看各存储过程的错误位置。

  3.4 授权执行权给相关的用户或角色如果调试正确的存储过程没有进行授权,那就只有建立者本人才可以运行。所以作为应用系统的一部分的存储过程也必须进行授权才能达到要求。 在SQLPLUS下可以用GRANT命令来进行存储过程的运行授权。

  语法:

  GRANT system_privilege | role TO user | role | PUBLIC

  [WITH ADMIN OPTION]

  

  GRANT object_privilege | ALL column ON schema.object

  TO user | role | PUBLIC WITH GRANT OPTION

  其中:

  system_privilege: 系统权限

  role: 角色名

  user: 被授权的用户名

  object_privilege: 所授予的权限名字,可以是

  ALTER

  DELETE

  EXECUTE

  INDEX

  INSERT

  REFERENCES

  SELECT

  UPDATE

  Column: 列名

  schema: 模式名

  object: 对象名

4.数据字典

   USER_SOURCE 用户的存储过程、函数的源代码字典

  DBA_SOURCE 整个系统所有用户的存储过程、函数的源代码字典

  ALL_SOURCE 当前用户能使用的存储过程(包括其她用户授权)、函数的源代码字典

  USER_ERRORS 用户的存储过程、函数的源代码存在错误的信息字典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译。用户可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来调用存储过程。\[2\]创建Oracle存储过程的基本语法如下: ``` create or replace procedure 存储过程名 AS/IS 变量名1 数据类型; 变量名2 数据类型; BEGIN --要处理的业务逻辑 EXCEPTION --存储过程异常 END 存储过程名; ``` 其中,存储过程名是自定义的名称,可以根据需要进行命名。在存储过程中,可以定义变量来存储数据,并在BEGIN和END之间编写具体的业务逻辑。如果存储过程发生异常,可以在EXCEPTION部分进行处理。\[3\]存储过程的具体实现可以根据具体的需求进行编写,可以参考相关的案例和开发指南来学习和理解存储过程的使用方法。\[1\] #### 引用[.reference_title] - *1* [Oracle存储过程入门教程(通俗理解存储过程)](https://blog.csdn.net/gongjin28_csdn/article/details/127928648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Oracle存储过程](https://blog.csdn.net/weixin_41697106/article/details/106217330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值