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

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.
主站蜘蛛池模板: 庐江县| 鄂伦春自治旗| 惠东县| 嘉兴市| 迭部县| 徐闻县| 南漳县| 长兴县| 平乡县| 石渠县| 喀喇沁旗| 镇安县| 蒙自县| 同心县| 五莲县| 平谷区| 曲水县| 东乌珠穆沁旗| 林芝县| 固阳县| 大悟县| 梓潼县| 高台县| 睢宁县| 双流县| 日土县| 科技| 洪泽县| 张家港市| 响水县| 五家渠市| 宁乡县| 清丰县| 广元市| 微博| 博罗县| 四川省| 茌平县| 浮梁县| 邵武市| 闽侯县|