在Oracle8i以前,所有已编译存储对象(包括packages, procedures, functions, triggers, and views)只能以定义者(Definer)身份解析运行;从Oracle8i开始,Oracle引入调用者(invoker)权限,使得对象可以以调用者身份和权限执行。
定义者(Definer)指编译存储对象的所有者. 调用者(Invoker)指拥有当前会话权限的模式,这可能和当前登录用户相同或不同(alter session set current_schema 可以改变调用者Schema).
批量绑定(bulk binds):FOR循环与FORALL的性能比较November 13, 2005
通常在SQL语句中给PL/SQL变量赋值叫做绑定(Binding),一次绑定一个完整的集合称为批量绑定(Bulk Binding)。
批量绑定(Bulk binds)可以通过减少在PL/SQL和SQL引擎之间的上下文切换(context switches )提高了性能.
批量绑定(Bulk binds)包括:
(i) Input collections, use the FORALL statement,一般用来改善DML(INSERT、UPDATE和DELETE) 操作的性能
(ii) Output collections, use BULK COLLECT clause,一般用来提高查询(SELECT)的性能
How to use Oracle Dump FunctionNovember 10, 2005
DUMP returns a VARCHAR2 value containing the datatype code, length in bytes, and internal representation of expr. The returned result...
使用UTL_FILE转储数据为逗号分隔符文件May 13, 2005
Tom写过这样一个函数用于把数据转储为逗号分隔符文件,看到很多人问类似的问题,转载这里供参考。 注意,UTL_FILE使用的Directory,需要你预先创建,具体可以参考Using Create directory & UTL_FILE in Oracle create or replace function dump_csv( p_query in varchar2, p_separator in varchar2...
What's mean ORA-25191?May 9, 2005
在参考了Using DBMS_SYS_SQL Package to grant Privilege留言板里有朋友继续问道,出现了以下错误: ORA-25191: cannot reference overflow table of an index-organized table ORA-06512: at "SYS.DBMS_SYS_SQL", line...
Using DBMS_SYS_SQL Package to grant PrivilegeMay 7, 2005
此话题源于留言板上的一个提问,看了Itpub上也有很久以前的的提问: 关于用户授权的问题! 在Oracle9i之前,如果你想要把对象权限授予某些用户,那么你需要使用该对象属主或者使用具有该对象with grant option权限的用户。 很多时候你可能需要进行批量授权,那么DBMS_SYS_SQL包可以为你提供简便. 以下过程供参考: declare sqltext varchar2(200); c integer; begin for userlist in (select user_id,username from all_users...