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

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.
主站蜘蛛池模板: 吴旗县| 嘉禾县| 益阳市| 怀来县| 潮州市| 武城县| 黔南| 手机| 云霄县| 溆浦县| 仁怀市| 和田县| 老河口市| 聊城市| 夏邑县| 大兴区| 章丘市| 滨州市| 周口市| 屏山县| 黎平县| 常熟市| 班戈县| 河东区| 星座| 桃江县| 武义县| 黎城县| 宁海县| 红安县| 绵竹市| 南和县| 九寨沟县| 寻乌县| 蓝山县| 大荔县| 东乡族自治县| 六枝特区| 阳原县| 南阳市| 许昌市|