ora-02298
最近升级脚本老是发现主外健的一些冲突,造成数据不完整,于是这里了一个脚本,怎么查那些数据造成主外健冲突[@more@]CREATE OR REPLACE PROCEDURE P_CON_ERR(AC_I_CONSTRAINT_NAME VARCHAR2, AC_I_OWNER VARCHAR2) AUTHID CURRENT_USER AS V_CURSORID INTEGER; V_CONSNAME VARCHAR2(30); V_OWNER VARCHAR2(30); V_TABLE_NAME VARCHAR2(30); V_RTABLE_NAME VARCHAR2(30); V_COLUMN VARCHAR2(100); V_STR VARCHAR2(600); TYPE T_COL_VALUE IS TABLE OF VARCHAR2(30) INDEX BY BINARY_IN
Oracle 10g 中sga_max_size 和sga_target用法
每次要修改sga的时候,都发现把这两个参数记错了,今天整理了一下用法,但愿不会再忘记了[@more@]一、oracle 10g中的SGA_MAX_SIZE与SGA_TARGET参数 sga_target是自动管理内存时使用的,这样你就不用设置DB_CACHE_SIZE,SHARED_POOL_SIZE等参数,他们会根据需要自动的进行调整的。SGA_MAX_SIZE是从oracle9i以来一直存在﹐是不可动态修改的。 SGA_TARGET是oracle10g中用于实现自动SGA内存管理而新增加的。 SGA_MAX_SIZE指的是可动态分配的最大值﹐而SGA_TARGET是当前已分配的最大sga。 SGA_MAX_SIZE是不可以动态修改的﹔而SGA_TARGET是可动态修
Linux下xmanager开启总共分几步
闲来无聊,事情又不想做,还是对以前的一些东西做个总结吧[@more@]第一步 我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句: # * #any host can get a login window 去掉最前面的#号,成为 * #any host can get a login window 第一步 我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句: # * #any host can get a login window 去掉最前面的#号,成为 * #any host can get a login window 第二步 我们修改/etc/X11/gdm/gdm.conf文件,找到下
关于行转列的总结(转)
最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结,希望对大家有所帮助,同时有何错疏,恳请大家指出,我也是在写作过程中学习,算是一起和大家学习吧。行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行下面分别进行举例介绍。首先声明一点,有些例子需要如下10g及以后才有的知识:a。掌握model子句,b。正则表达式c。加强的层次查询讨论的适用范围只包括8i,9i,10g及以后版本。begin:[@more@]1、列转行CREATE TABLE t_col_row(ID INT,
使用临时表的sql优化案例一
基于RBO的情况下[@more@]oracle:92041.table和index的相关信息:create global temporary table tmp_ic_atp_test1(CTMPCORPID CHAR(4),CTMPCALBODYID CHAR(20),CINVENTORYID CHAR(20),VFREE1 VARCHAR2(20),VFREE2 VARCHAR2(20),VFREE3 VARCHAR2(20) ,VFREE4 VARCHAR2(20) ,VFREE5 VARCHAR2(20) ,VFREE6 VARCHAR2(20) ,VFREE7 VARCHAR2(20) ,VFREE8 VARCHAR2(20) ,VFREE9 VARCHAR2(20) ,VFREE10 VARCHAR2(20) ,DPLANDATE CHAR(10) ,USABLEAMOUNT CHAR(16) ,USABLEAMOUNTBYFREE CHAR(1) ,TS CHAR(19) )on commit preserve rows;create inde
使用临时表的sql优化案例(二)
对于基于成本优化器的数据库来说,准确的统计信息对数据库是否选择最优化的执行方式尤其重要。然而对于临时表,利用这种方式统计信息却有可能造成明显的效率故障。因为临时表平时都是空表,如果对其进行分析,其统计信息记录数为0行,与实际使用时的情况相差甚远。[@more@]那么对于临时表,我们建议自己来指定统计信息:1,估算临时表行数根据实际业务估算临时表在计算过程中可能产生多少数据,2,计算临时表block数简单的方法就是建一个与临时表结构相同的固定表,插入上面估算出的数据,例如估算出2000条,则根据临时表数据生成情况插入
删除死锁的进程
最近发现并行插入数据容易造成表的死锁,以下为一些解锁的语句[@more@]查询sql:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT A.OWNER,A.OBJECT_NAME,B.XIDUSN,B.XIDSLOT,B.XIDSQN,B.SESSION_ID,B.ORACLE_USERNAME, B.OS_USER_NAME,B.PROCESS, B.LOCKED_MODE, C.MACHINE,C.STATUS,C.SERVER,C.SID,C.SERIAL#,C.PROGRAMFROM ALL_OBJECTS A,V$LOCKED_OBJECT B,SYS.GV_$SESSION C WHERE ( A.OBJECT_ID = B.OBJECT_ID )AND (B.PROCESS = C.PROCESS )ORDER BY 1,2 释放sessio
调用者权限过程的权限问题
首先描述一下当时我碰到的问题:我写了一个存储过程,要在其中使用DBMS_METADATA过程获取另一个用户的某对象的定义。[@more@]SQL> CREATE OR REPLACE PROCEDURE P_TEST AS2 BEGIN3 FOR I IN (SELECT DBMS_METADATA.GET_DDL('TABLE', 'DUAL', 'SYS') DEFINE FROM DUAL) LOOP4 DBMS_OUTPUT.PUT_LINE(SUBSTR(I.DEFINE, 1, 255));5 END LOOP;6 END;7 /过程已创建。SQL> SET SERVEROUT ON SIZE 1000000SQL> EXEC P_TESTBEGIN P_TEST; END;*ERROR 位于第 1 行:ORA-31603: 对象 "DUAL" 属于类型 TABLE, 在方案 "SYS"