当前位置: 首页 > news >正文

网站科普信息化建设的意义网站建设怎么样工作室

网站科普信息化建设的意义,网站建设怎么样工作室,互联网广告营销,wordpress文件默认权限设置系列文章目录 Oracle PL/SQL基础语法学习12#xff1a;短路求值 Oracle PL/SQL基础语法学习13#xff1a;比较运算符 Oracle PL/SQL基础语法学习14#xff1a;BOOLEAN表达式 文章目录 系列文章目录前言Oracle PL/SQL基础语法学习15#xff1a;静态表达式Static Expression…系列文章目录 Oracle PL/SQL基础语法学习12短路求值 Oracle PL/SQL基础语法学习13比较运算符 Oracle PL/SQL基础语法学习14BOOLEAN表达式 文章目录 系列文章目录前言Oracle PL/SQL基础语法学习15静态表达式Static Expressions静态表达式介绍静态常量 官方文档Static Constants静态常量代码例关于AUTHID DEFINER 和AUTHID CURRENT_USER 参考连接总结 【免责声明】文章仅供学习交流观点代表个人与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) 前言 PL/SQL是Oracle数据库中的一种嵌入式语言其功能强大可以进行存储过程和函数的编写帮助开发者快速高效地处理数据库操作。 最好的学习是实践加上看官方文档。官方文档中的代码例更是精华和重点所在。 IT行业如此编程如此Oracle PL/SQL的学习更是如此。 本系列将以《Database PL/SQL Language Reference》的PL/SQL代码例为主线进行介绍。 Oracle PL/SQL基础语法学习15静态表达式 Static Expressions静态表达式介绍 静态表达式是一个在PL/SQL语言中用于描述一个特定值的表达式。 这个表达式在编译时可以确定其值的表达式即它不包括字符比较、变量或函数调用在运行时是不可改变的常常在PL/SQL中用于初始化变量、常量、参数等。 在PL/SQL中静态表达式可以使用常量、字面量、枚举类型等可以使用任意组合来描述目标值。 静态常量 在一个包规范中声明静态常量的语法是 constant_name CONSTANT data_type : static_expression; 静态表达式的类型必须与data_type相同BOOLEAN或PLS_INTEGER。 静态常量必须始终作为package_name.constant_name被引用即使是在package_name包的主体中。 官方文档Static Constants静态常量代码例 CREATE PACKAGE my_debug ISdebug CONSTANT BOOLEAN : TRUE;trace CONSTANT BOOLEAN : TRUE; END my_debug; /CREATE PROCEDURE my_proc1 AUTHID DEFINER IS BEGIN$IF my_debug.debug $THENDBMS_OUTPUT.put_line(Debugging ON);$ELSEDBMS_OUTPUT.put_line(Debugging OFF);$END END my_proc1; /CREATE PROCEDURE my_proc2 AUTHID DEFINER IS BEGIN$IF my_debug.trace $THENDBMS_OUTPUT.put_line(Tracing ON);$ELSEDBMS_OUTPUT.put_line(Tracing OFF);$END END my_proc2; /这段PL/SQL代码创建了一个名为my_debug的包其中包含两个静态常量debug和trace类型为BOOLEAN并在其值上分别定义为TRUE用于控制多个PL/SQL单元中的调试和跟踪。 接着创建了两个存储过程my_proc1和my_proc2它们都具有AUTHID DEFINER权限也就是使用它们的用户必须拥有它们的owner授予的权限。这两个存储过程中都使用了条件编译语句IF/THEN/ELSE/END通过判断my_debug包中的debug和trace常量的值来输出相应的信息。IF指令用于测试编译时常量的值如果值为TRUE则执行THEN指定的代码块否则执行$ELSE指定的代码块。这种条件编译语句通常用于开发和调试过程中在编译时根据一些条件选择性地编译特定的代码块以提高代码的可读性和效率。 过程my_proc1仅使用debug而过程my_proc2仅使用trace但两个过程都依赖于该包。但重新编译的代码可能并不会有所不同。例如如果您只更改debug的值为FALSE然后重新编译这两个过程那么my_proc1的编译代码会改变但my_proc2的编译代码不会改变。 关于AUTHID DEFINER 和AUTHID CURRENT_USER AUTHID参数用于定义执行函数体时使用哪个用户的权限。 AUTHID { CURRENT_USER|DEFINER}当创建具有 AUTHID CURRENT_USER 权限的存储过程、函数或包时其将在调用它的用户的权限上下文中运行。 例 CREATE OR REPLACE PROCEDURE TEST_AUTHID1 AUTHID CURRENT_USER IS BEGINEXECUTE IMMEDIATE select * from table1; END TEST_AUTHID1 ; /该代码创建了名为 TEST_AUTHID 的存储过程该存储过程以当前用户的上下文权限来运行即 AUTHID CURRENT_USER。在存储过程的主体中使用 EXECUTE IMMEDIATE 语句来执行了一个 SQL 查询查询的是名为 table1 的表的所有数据。 由于存储过程是以当前用户的权限来运行的因此只有当前用户具有足够的权限才能执行该查询。如果当前用户没有对表 table1 的访问权限则该查询将失败并抛出异常。 当创建具有 AUTHID DEFINER 权限的存储过程、函数或包时它将以其所属用户创建者的权限上下文中运行。 例 CREATE OR REPLACE PROCEDURE TEST_AUTHID2 AUTHID DEFINER IS BEGINEXECUTE IMMEDIATE select * from table1; END TEST_AUTHID2 ; /该代码创建了名为 TEST_AUTHID2 的存储过程该存储过程以定义者 AUTHID 的权限来运行。在存储过程的主体中使用 EXECUTE IMMEDIATE 语句来执行了一个 SQL 查询查询的是名为 table1 的表的所有数据。 由于该存储过程是以定义者的权限来运行的即创建该存储过程的用户/角色/授权程序的权限上下文中运行。因此只要该定义者具有访问表 table1 的权限无论调用该存储过程的用户具有何种权限该查询都会成功执行。 但是如果定义者在创建存储过程时已经不存在或者权限被撤销则该存储过程无法成功执行。 参考 8.14 Invoker’s Rights and Definer’s Rights (AUTHID Property) Definer’s Rights and Invoker’s Rights (AUTHID clause) 参考连接 Database PL/SQL Language Reference 总结 静态表达式是PL/SQL编程中一个重要的概念它可以用于定义和初始化变量、参数和常量等。常量表达式、字面量表达式和枚举类型表达式是常用的静态表达式类型。AUTHID参数可以用于定义执行函数体时使用哪个用户的权限。
http://www.hkea.cn/news/14355071/

相关文章:

  • 注册城乡规划师报名wordpress显示标题和seo标题
  • 伊宁网站建设优化网站流量超了
  • 杭州网站设计予尚网站建设参数
  • 一级a做爰片拍网站什么是网络营销含义
  • 襄阳城乡建设局网站首页网站推广免费渠道
  • 上海网站开发建设价格廊坊哪里做网站
  • 建网站开发语言对比苏州集团网站建设
  • 楼盘网站开发报价公众号可以做自己网站的超链接
  • 长沙建站宝网络科技有限公司网站建设丨下拉找金手指上词快
  • 常州网站定制消耗品分类
  • 福永镇网站建设网站关键词推广做自然排名
  • 网站是如何做的好wordpress加腾讯云cdn
  • 网站建设大作业电子版桂林公司做网站
  • 福建省住房和城乡建设厅门户网站如何把网站做的更好
  • 海宁网站网站建设手机版网站怎么上传
  • 东莞微联建站徐州英文网站seo
  • 室内设计学校网站惠州seo排名
  • 创建网站大约多少钱2018怎样做外贸网站
  • 为什么公司网站打不开最专业的营销网站建设
  • 网站怎么快速被百度收录WordPress和微信公众号
  • iis配置网站访问权限建设企业网站就等于开展网络营销
  • 提供网站建设工具的品牌有哪些页面设计线稿
  • 网站品质有服务器自己怎么做网站
  • 游戏开发比网站开发微博营销网站
  • 陕西网站建设报价wordpress格式刷
  • 网站开发访客ip高明铝业网站建站
  • 古典网站源码深圳商城网站设计制作
  • 哪个网站做ppt能赚钱五合一小程序网站
  • 免费的ppt模板下载网站有哪些asp做企业网站很好啊
  • 做网站图片路径做缓存吗知名的网站设计公司