- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- Saurabh K. Gupta
- 280字
- 2021-08-20 10:43:51
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 theSELECT
statement, the context switch from SQL to the PL/SQL engine degraded the performance. Oracle 12c allows creating PL/SQL units in theWITH
clause of a subquery and using it in theSELECT
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 anACCESSIBLE
BY
clause to define a white list of PL/SQL program units that can invoke it.
推薦閱讀
- Puppet 4 Essentials(Second Edition)
- Mastering ServiceStack
- 自己動手實現(xiàn)Lua:虛擬機(jī)、編譯器和標(biāo)準(zhǔn)庫
- JavaScript+jQuery開發(fā)實戰(zhàn)
- Servlet/JSP深入詳解
- Visual Basic程序設(shè)計習(xí)題解答與上機(jī)指導(dǎo)
- Python機(jī)器學(xué)習(xí)經(jīng)典實例
- Mastering Apache Spark 2.x(Second Edition)
- Learn React with TypeScript 3
- Modern JavaScript Applications
- Simulation for Data Science with R
- Flask開發(fā)Web搜索引擎入門與實戰(zhàn)
- Python深度學(xué)習(xí)與項目實戰(zhàn)
- Java網(wǎng)絡(luò)編程實用精解
- Java基礎(chǔ)案例教程(第2版)