- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
过程,函数,程序包
过程,函数,程序包 之前学习的PL/SQL块是匿名的,不能将其存储到数据库中。 我们可以命名我们的PL/SQL块,并为他们确定参数,存储在数据库中。这样可以从任何数据库客户端或者工具引用和运行他们,比如SQL*PLUS, Pro*C, JDBC。这些命名的PL/SQL块成为存储过程和函数,他们的集合成为程序包。 优点: 可重用性:一旦命名并保存在数据库中后,任何应用都可以 抽象和数据隐藏 安全性 过程 存储过程就是命了名的PL/SQL块,可以被赋予参数,存储在数据库中,然后由另一个应用或者PL/SQL例程调用。比如 CREATE PROCEDURE my_proc as BEGIN NULL; END; / 语法: CREATE [OR REPLACE] PROCEDURE procedure_name (参数) IS | AS [PRAGMA AUTONOMOUS_TRANACTION;] --声明自主事务处理。 [本地变量声明] BEGIN 执行语句部分 [EXCEPTION] 错误处理部分 END[name]; / CREATE OR REPLACE PROCEDURE my_proc as -- OR REPLACE BEGIN Dbms_output.put_line(‘Hello, world’); END; / 执行存储过程 set serveroutput on begin my_proc end; / 直接执行: execute my_proc exec my_proc 权限: 表和视图具有SELECT, INSERT, UPDATE, DELETE 这样的特权,而过程具有EXECUTE特权。只有将EXECUTE 特权赋予用户,用户才可以运行它。而将它赋予PUBLIC用户,则所有用户都可以运行。 [试验] 创建3个用户 conn donny/donny create user chris identified by chris; 此时不能连结数据库,不能创建过程 grant connect, resource to chris; create user sean identified by sean; grant connect, resource to sean; create user mark identified by mark; grant connect, resource to mark; 使用mark建立一个过程 conn mark/mark create procedure marks_proc as begin null; end; / 尝试使用chris用户执行这个过程: conn chris/chris exec mark.marks.proc 授权: conn mark/mark grant execute on marks_proc to chris conn chris/chris exec mark.marks_proc 尝试使用sean用户执行这个过程: conn sean/sean exec mark.marks.proc 将execute 授予public用户,使得所有用户都可以执行这个过程 conn mark/mark grant execute on marks_proc to public; conn sean/sean exec mark.marks.proc 参数: 过程可以进行参数化处理,可以为任何合法的PL/SQL类型,有三种模式:IN, OUT, IN OUT IN 参数通过调用者传入,只能由过程读取,不能改变。是默认的模式,可以具有默认值。 OUT 参数有过程写入。用于过程需要向调用者返回多条信息的时候。不能是具有默认值的变量,也不能是常量,必须向OUT参数传递返回值。 IN OUT 具有两者的特性,可以读取和写入。 IN参数: Create table t(n number); Create or replace procedure insert_into_t (p in number ) is begin insert into t values(p); end insert_into_t; / 这个时候并没有执行该过程,尝试执行 select * from t; exec insert_into_t (p= 100); select * from t; 例子2 drop table t; Create table t (n number, p varchar2(20)); Create or replace procedure insert_into_t ( p1 in number, p2 in number)
您可能关注的文档
最近下载
- 新入职保安培训知识课件.pptx VIP
- Unit5 a cherry, please(课件)译林版(一起)英语一年级上册.pptx
- OEE计算表格(完整工具).xls VIP
- 食品生产企业有害生物风险管理指南.docx VIP
- 《计算机控制系统》课后题答案-刘建昌.pdf VIP
- 2025年医学课件-转变围术期麻醉管理理念推进ERAS加速康复外科建设.pptx VIP
- 加强县级行政事业单位房地资产管理的思考.doc VIP
- 2024人民防空工程常见技术问题及解答.docx VIP
- 人教版鄂教版科学二年级上册二单元《水和空气》大单元教学设计.pdf VIP
- T_GDPAWS 33-2024 城镇污水处理企业应急能力建设规范.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)