官术网_书友最值得收藏!

Oracle Database 12c enhancements to PL/SQL subprograms

Oracle Database Release 12c includes a number of PL/SQL feature enhancements. These enhancements are focused on improving the usability of PL/SQL as a language. Although the next chapter will discuss many more new features in detail, it is worthwhile to mention a few of them that are exclusively related to Oracle PL/SQL subprograms.

  • Defining PL/SQL subprograms in the SELECT statement: Although PL/SQL allows the invoking of a function from the SELECT statement, the context switch from SQL to the PL/SQL engine degraded the performance. Oracle 12c allows creating PL/SQL units in the WITH clause of a subquery and using it in the SELECT statement. The new approach to calling functions in SQL statements enhances the performance as there is no context switching across the engines. In addition, these functions are not stored in the database schema.
  • Granting roles to program units: One of the challenges in PL/SQL before Oracle 12c was that a program unit had to be created with definers rights, if it was intended to be executed by all users. A user with a lower set of privileges could perform the unauthorized changes. With Oracle 12c, granting roles to PL/SQL program units adds a levels of safety. You can now create program units with invoker's rights and control the privileges, which are required to run the program, through a role.
  • Protecting PL/SQL unit access through the ACCESSIBLE BY clause: With Oracle 12c, you can restrict access to a PL/SQL unit by unauthorized programs. A subprogram (a procedure, function or a package) can optionally include an ACCESSIBLE BY clause to define a white list of PL/SQL program units that can invoke it.
主站蜘蛛池模板: 美姑县| 涞源县| 桃源县| 宜黄县| 德钦县| 高平市| 忻城县| 大埔区| 龙江县| 左贡县| 天台县| 南汇区| 西畴县| 荃湾区| 错那县| 刚察县| 高雄市| 正镶白旗| 尚志市| 卢湾区| 黄冈市| 宾阳县| 罗平县| 隆林| 贡嘎县| 兴安县| 乌兰察布市| 桑植县| 茂名市| 海盐县| 承德县| 黔西县| 太和县| 岐山县| 故城县| 黄梅县| 博湖县| 车险| 汶川县| 巴东县| 互助|