授权
从 oracle 8i 开始, oracle 用通过提供 authid 子句为 pl/sql 的执行授权模型, 这样我们可以选择使用 authid current_user(调用者权限)来执行这个plsql语句, 这时这个程序是用调用者(当前)模式的授权运行的.
与 SQL 整合
pl/sql 于 sql 紧密整合, plsql 无需任何 odbc, jdbc
declare l_book_count INTEGER; begin select count(*) into l_book_count from autor like '%FEUERSTEIN, STEVEN%' dbms_output.put_line( 'Steven has written (or co_written) ' || l_book_count || 'books. '); update books set author = replace( author, 'Steven', 'Stephen') where author like '%FEUERSTEIN, STEVEN%' end;
以上代码可以看出, 只是在单纯的定义一个pl/sql块时, 如果有变量定义, 那么可以使用 declare 生命, 但是, 假如是一个 function, 或者 procedure 就不需要 declare 来生命, 而是直接声明就可以了.