让一个普通用户看到另一个用户的包体
如果只是授权执行:grant EXECUTE ANY PROCEDURE to hdisread ; 那么只能看到包的说明,看不到包体,所以必须加上下面的授权:grant CREATE ANY PROCEDURE to hdisread ; [@more@]
查找 分析硬解析较高的sql, <bind variable>
查找 分析硬解析较高的sqlhttp://www.itpub.net/thread-1261108-2-1.html[@more@]
IOT table
http://david3389.itpub.net/post/38225/501523[@more@]
index , virtual , invisible
http://yumianfeilong.com/html/2010/04/10/427.html建立虚拟索引后,可以使用dbms_stats.generate_stats收集该虚拟索引的统计信息,以便更好的帮助CBO判断。dbms_stats.gather_index_stats无法分析virtual index。CREATE INDEX INDEX_NAMEON TABLE_NAME (INDEX_COLUMN)NOSEGMENT; invisible index 确实应该是用来解决virtual index无法解决的问题的, 但不完全是..比如可以直接将某个index 改为invisible就可以避免系统使用一个已有索引, 这在由个别索引导致执行计划出问题时也是很有帮助的..设计高效SQL: 一种视觉的方法http://www.itpub
bitmap join index
http://hi.baidu.com/gkl0818/blog/item/65ec81240a32021b8b82a146.html[@more@]
sql profile
http://qqmengxue.itpub.net/post/42175/502131DBMS_SQLTUNEhttp://blog.csdn.net/ilovemilk/archive/2009/11/23/4853514.aspx[@more@]
关于Oracle降序索引的定意及回溯
降序索引本质上是FBI,其具体定义可以通过 user_ind_expressions 或dba_ind_expressions 查询。那么同样的,降序索引只有在CBO下才能被使用。Connected to Oracle9i Enterprise Edition Release 9.2.0.4.0 Connected as eygleSQL> create table t as select * from dba_users;Table createdSQL> create index idx_username_desc on t(username desc);Index createdSQL> select index_name,table_name,INDEX_TYPE from user_indexes where table_name=@#T@#;INDEX_NAME TABLE_NAME INDEX_TYPE------------------------------ --
table type usage sample:
1, create or replace type ename_tab as table of varchar2(30) ;2,set serverout ondeclarep1 ename_tab ;p2 ename_tab ;beginp1 :=ename_tab('') ;--p2 :=ename_tab('') ; p1.extend(2);-- p2.extend(1); p1(1) := 'Jack' ; p1(2) := 'Mikel' ; p1(3) := 'Dameon' ; p2 := p1 ; p2(1) := 'Jack-- 1' ; p2(2) := 'Mikel--2' ; p2(3) := 'Dameon--3' ; dbms_output.put_line(p1(1)) ; dbms_output.put_line(p1(2)) ; dbms_output.put_line(p1(3)) ; -- dbms_output.put_line(d) ; end;/3,
pls_integer类型
今天在看一个触发器代码的时候碰到了一个pls_integer类型,以前没碰到过,记录一下:PLS_INTEGER可以存储一个有符号的整形值,其精度范围和BINARY_INTEGER一样,是:-2^31~2^31。PLS_INTEGER和NUMBER比较起来,其优点是:1).占有较少的存储空间;2).可以直接进行算术运算(在NUMBER上不能直接进行算术运算,如果要计算,NUMBER必须先被转换成二进制)。所以在进行算术的时候PLS_INTEGER比NUMBER和BINARY_INTEGER快一些。PLS_INTEGER和BINARY_INTEGER区别:PLS_INTEGER进行的运算发生溢出的时候,会触发异常。但是当BINARY_INTEGER运算发生溢出
动态调用存储过程 sample:
-- requirement:系统中有大量结构相同的过程,想通过动态调用简化应用代码。-- 例子说明:-- procedure : p_emp , get a input parameter with default value , and result a cursor.create or replace procedure p_emp( p_name in varchar2 default null, p_cur OUT Sys_Refcursor ) isbegin OPEN P_CUR FOR SELECT ENAME FROM EMP WHERE eNAME LIKE '%'||P_NAME||'%' ; end p_EMP;-- demo code to calling a dynamic procedure.set serverout ondeclarep_sql varchar2(4000);p_cur1 sys_refcursor ;p_proc varchar2(30);p_retcur va
sql 99 语法
http://blog.sina.com.cn/s/blog_4c7f8e3d0100a9d8.html[@more@]
MERGE usage
oracle 10g里,Merge语句的重大改进http://wwwwwfco.itpub.net/post/5073/312292[@more@]
行列转换
select e.empno, e.ename, substr(p,instr(p,'/',1,rn)+1, instr(p,'/',1,rn+1) - instr(p,'/',1,rn)-1)from ep e,(select rownum rn from dual connect by rownum<10) t where instr(p,'/',1,rn)>0order by 1,rn ;select e.empno, e.ename, decode( t.rn, 1,job, 2,mgr, 3,hiredate, 4,sal, 5,comm,deptno) magic_colfrom emp e,(select rownum rn from dual connect by rownum<6) t order by 1;[@more@]知识点:1, SEQUENCE 在实例全局是连续的2,ASP.NET 使用BLOB 有32K大小限制,解决方法:http://kb.cnblogs.com/a/1610681
软件设计
1 顶一下>其实中国的很多java软件企业在开发中,很少使用设计模式和领域建模的所以 中国软件落后啊,萧条啊,那些命题的考官都是过时淘汰的人,所以,这次危机淘汰的都是他们,如果你被他们的试卷录取进去,你会跟着他们一起淘汰。设计模式 领域建模是世界潮流,是软件的本质,是将软件做的更易于维护,这才是软件专业。至于算法当然重要,但那属于另外一个专业:数学。这些企业之所以考算法,也可能有其他想法:是想一个人两个专业都做,就象找电工,最好水电都会做[@more@]http://www.jdon.com/jivejdon/thread/35102
pl sql developer 8.0 register code
4tkj6j6jtgy32ss8nmfbuxjsyc3t3z7jm4bcye8n6z763336646xs374cajust for note. Everyone use this code may accord with the software copyright law .[@more@]
plsql 编程经验---引用
平时在PL/SQL中的编程中遇到一些问题,这里以问答的形式来进行把它们总结下来,以供大家分享。 1、当需要向表中装载大量的数据流或者需要处理大量的数据流的时候,能否使用管道提高处理效率?[@more@] 管道函数对于改善并行查询的性能非常方便,它加快往表中加载数据的速度。管道函数的使用总结如下两点: 每当在查询里使用PL/SQL函数时,该查询将被序列化,即一个处理器只能运行一个查询实例,那么在这种情况下不可能使用并行查询(比如在数据仓库中要经常使用这项技术)。因此,为了使用并行查询就必须使用管道
READ CONSISTENCY IN A TRANSACTION
BEGINSET TRANSACTION READ ONLY ;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ;END; /[@more@]
partition table update partition-key result in changing tablespace
create table pt1 partition by list (deptno)(partition p1 values ('10') tablespace ts_1,partition p2 values ('20') tablespace ts_2,partition p3 values ('30') tablespace ts_3,partition p4 values ('40') tablespace ts_4)as select * from emp ;[@more@]SQL> select * from pt1 partition (p1) ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ---------- --------- ----- ----------- --------- --------- ------ 7782 CLARK MANAGER 7839 1981-06-09 2450.00