DML ERROR LOGGING总结
DML ERROR LOGGING总结总结:康标email:kang_biao@hotmail.com[@more@]DML ERROR LOGGING总结总结:康标email:kang_biao@hotmail.com为什么要使用DML ERROR LOGGING?在Oracle 10之前执行一些大规模的操作的时候,尤其是一些长时间bulk DML操作的时候,会发现如果在执行过程中如果有一行发生错误的时候,就会放弃这个DML操作而回滚。这样的话就会浪费大量的时间和系统资源。是不是能有一种途径使得在执行bulk DML操作,将成功的部分插入到表中,而将未能正确插入的部分的错误插入到其他表中,以后来处理。在Oracle 10g release 2:中引入
模拟在线重做日志被删除的情况恢复
模拟在线重做日志被删除的情况恢复[@more@]模拟在线重做日志被删除的情况恢复添加一个在线重做日志组4。SQL> alter database add logfile group 4 ('e:redo4.log') size 10M;数据库已更改。SQL> select * from v$log 2 ; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS---------- ---------- ---------- ---------- ---------- --- ---------------- 1 1 165 10240000 1 NO CURRENT 2 1 162 10240000 1 YES INACTIVE 3
大文件表空间
大文件表空间[@more@]大文件表空间大文件表空间是一个表空间,只是有一个数据文件,这个和其他普通的表空间不一样的地方。其他普通表空间是可以有多个数据文件中。但是文件不能太大,但是大文件表空间的数据文件在8k的数据块中可以有32T的数据文件,在32K上可以有128T的数据文件。这样大文件表空间可以减少数据文件的数目。只能使用EXTENT MANAGEMENT LOCAL and SEGMENT SPACE MANAGEMENT AUTO的方式管理表空间。由于表空间中只有一个文件,所以文件号统一为1024。还可以添加大文件临时表空间。
关于在spfile文件上修改control_files参数的问题
关于在spfile文件上修改control_files参数的问题[@more@]我在为控制文件修改路径的时候遇见一个这样的问题。本来三个控制文件的位置是:E:ORACLEORADATAORA10CONTROL01.CTL, E:ORACLEORADATAORA10CONTROL02.CTL, E:ORACLEORADATAORA10CONTROL03.CTL' 我现在将控制文件的路径修改为:E:CONTROL01.CTL, E:ORACLEORADATAORA10CONTROL02.CTL, E:ORACLEORADATAORA10CONTROL03.CTL'我开始做的时候是这样的SQL> alter system set control_files='E:CONTROL01.CTL, E:ORACLEORADATAORA10CONTROL02.CTL, E:ORACLEORADATAORA10CONTROL03.CTL' sc
DUMP的一些用法
DUMP的一些用法[@more@]DUMP的一些用法DUMP是返回数据类型代码,长度和内部存储表达式的一个函数,有一些特殊的用法:参数return_fmt用来指定返回值的格式:8 返回8进制的结果10返回10进制的结果16返回16进制的结果17 作为单独字符作为结果例如:SQL> select a from t;A-----1111SQL> select dump(a,8) from t;DUMP(A,8)--------------------------------------------Typ=1 Len=4: 61,61,61,61SQL> select dump(a,10) from t;DUMP(A,10)--------------------------------------------Typ=1 Len=4: 49,49,49,49SQL> select dum
为什么要使用set unused 删除列?
为什么要使用set unused 删除列?[@more@]为什么要使用set unused 删除列?先总结一下set unused 这个语句的意思,在删除一个列在Oracle上有很多方式,一个是drop column另一个则是set unused。这两个是不一样的。做一个试验:SQL> create table t (a int ,b int , c int);Table createdSQL> alter table t set unused column b;Table alteredSQL> desc t; 名称 是否为空? 类型 ----------------------------------------- -------- -------------- A
DB2傻瓜1000问(三)DB2实例部分
DB2傻瓜1000问(三)DB2实例部分[@more@]DB2实例部分45、 什么是DB2实例?DB2 实例 是一种逻辑上下文,DB2 命令及函数在其中执行。。您可将实例视为管理对数据库文件的访问的服务或守护进程。在一台服务器上可定义多个实例。各实例独立于其他实例,也就是说所有实例均可分别管理、操纵及调优。46、 在WINDOWS上如何新添一个实例?db2icrt instance_name47、 在Linux 和 UNIX 中如何新添一个实例?db2icrt -u fenced_user_ID instance_name默认情况下,用户定义的函数和存储过程是在 fenced 模式下创建的,因而这些进
DB2傻瓜1000问(二)DB2数据库的安装部分
DB2傻瓜1000问(二)DB2数据库的安装部分[@more@]DB2数据库的安装部分23、 为什么要对数据库进行编目?如果没有编目信息,应用程序就无法连接数据库!DB2 有多个用来访问数据库的目录。这些目录让 DB2 能够找到已知的数据库,无论它们是在本地系统上,还是在远程系统上。系统数据库目录包含一个列表和指针,它们指出可以找到每个已知数据库的地方。节点目录包含的信息指出如何以及在哪里能够找到远程系统或实例。要在这些目录中放进一个条目,需要使用 CATALOG 命令。要删除条目,应该使用 UNCATALOG 命令。要想从客户机访问数据库,客户机
DB2傻瓜1000问(一)DB2简介、版本部分
DB2傻瓜1000问(一)DB2简介、版本部分[@more@]DB2简介、版本部分 1、 DB2的历史是怎样的? 1983年IBM发行第一版是针对MVS系统的。1996年的V5。1999年支持LINUX系统。2004年出版V8.2。06年出现V9。 2、 DB2各版本的代码是否通用? DB2的代码在LINUX,UNIX和WINDOWS上的代码大约90%的是相同的,每个操作系统都有10%的专用代码,主要是用于数据库与底层操作系统集成用的。 3、 什么是OLTP? 在线事务处理(online transactional processing,OLTP)这些应用程序的特征是进行细粒度的单行查询,可能更新少量的记录。 4、 什么是OLAP? 在线分
解决RAW在SQLPLUS上无法显示的问题
解决RAW在SQLPLUS上无法显示的问题[@more@]解决RAW在SQLPLUS上无法显示的问题SQL> drop table t purge;表已删除。SQL> create table t ( 2 a varchar2(5), 3 b long raw 4 );表已创建。SQL> insert into t values('1111','123456789abcdef');已创建 1 行。SQL> commit;提交完成。SQL> select * from t;A B----- -1111 0这时候B是显示不出来的。这样就显示出来了。SQL> set serveroutput onSQL> begin 2 for x in (select * from t) 3 loop 4 dbms_output.put_line('a= '||x.a); 5
为什么建议使用命令行工具?
为什么建议使用命令行工具?[@more@]问:为什么建议使用命令行工具?答:不管你是使用SQL SERVER数据库,还是使用Oracle,DB2数据库也罢,都建议使用命令行工具来管理数据库,因为命令行工具具备图形界面无法比拟的优点:1、速度快,命令行工具都是基于字符模式的输入输出。在系统的运行上省去了图形界面的操作时间。同时很多图形界面管理系统,例如Oracle的OEM,为了跨平台的使用是建立在java平台下,这样系统的运行需要java虚拟机。系统命令的交互也是通过虚拟机实现。而命令行工具则是不存在这些问题。2、操作相对安全。在图形界面下很
使用SQL实现特殊查询(1)
使用SQL实现特殊查询(1)[@more@]使用SQL实现特殊查询(1)对于一个表如下:SQL> select * from t;A B----------- ---------------------------------------2006-2-1 12006-2-2 12006-2-3 12006-2-4 12006-2-5 12006-2-6
函数索引的存储
函数索引的存储[@more@]函数索引做一个很有意思的试验:SQL> create table t as select rownum a from all_objects where rownum < 11; Table createdSQL> select table_name,column_name from user_tab_cols;TABLE_NAME COLUMN_NAME------------------------------ ------------------------------T ASQL> create index t_ind on t(a+100);Index createdSQL> select table_name,column_name from user_tab_cols;TABLE_NAME COLUMN_NAME-----------
关于一个数据库列设计的问题
关于一个数据库列设计的问题(from askTom)[@more@]关于一个数据库列设计的问题From askTom在ASKTOM上有一个问题是:Hi Tom,I am in a situation to define a primary key values.My primary value contains data in the following format..100020051225000001Here the first 4 digits represent site id (1000)Second set of 8 digits represent Date in YYYYMMDD (20051225)the last 6 digits represent transaction # (0000001)This is my requirement. Now I have a question 1.Which data type is best suitable ?Varchar2 or Number
临时表在收集统计的时候会出现的问题
临时表在收集统计的时候会出现的问题[@more@]临时表在收集统计的时候会出现的问题添加一个临时表:SQL> create global temporary table gtt(x int) on commit preserve rows;表已创建。SQL> insert into gtt select rownum from all_objects where rownum <= 1000;已创建1000行。SQL> set autotrace on expSQL> select count(*) from gtt; COUNT(*)---------- 1000执行计划----------------------------------------------------------Plan hash value: 3344941513------------------------------------------------
数据库DDL操作审计
数据库DDL操作审计(from askTom)[@more@]数据库DDL操作审计可以使用以下触发器来实现:from askTomcreate or replace trigger ddl_trigger after create or alter or drop on SCHEMA declare l_sysevent varchar2(25); l_extra varchar2(4000); begin select ora_sysevent into l_sysevent from dual; if ( l_sysevent in ('DROP','CREATE') ) then if l_sysevent = 'CREATE' then begin select 'storage ( initial ' || initial_extent || ' next ' ||
为什么需要对约束添加名称?
为什么需要对约束添加名称?[@more@]为什么需要对约束添加名称?在设计Oracle数据表的时候,时常需要对表的列添加一定的约束,添加表的时候,约束可以是命名的,也可以是匿名的,而在匿名的时候,系统会对这个约束自动添加上系统命名的约束名,但是如果不对约束命名的时候,有可能在未来的操作中产生性能影响。下面就这个问题做一个试验:添加一个表:SQL> create table t ( 2 a int check (a>10), 3 b int constraint b_rule check (b>10), 4 c int not null, 5 d int unique, 6 e int primary key 7 );Table crea
DB2傻瓜1000问(一)
DB2傻瓜1000问(一)[@more@]DB2傻瓜1000问康标整理DB2简介1、 DB2的历史是怎样的?1983年IBM发行第一版是针对MVS系统的。1996年的V5。1999年支持LINUX系统。2004年出版V8.2。06年出现V9。2、 DB2的信息管理产品(DB2 Information Management Products)都有什么?Database ServersDB2 Business IntelligenceDB2 Content ManagementDB2 Information IntegrationDB2 and IMS Tools3、 DB2 UDB都有那些版本?V8有以下5个版本:Everyplace EditionPersonal EditionWorkgroup Server EditionExpress EditionEnterprise Server EditionV9有以下
DB2傻瓜1000问(二)
DB2傻瓜1000问(二)[@more@]101、 什么是数据库分区组?数据库分区组是一个或者多个数据库分区的集合。通过数据库分区的分组,能够在一个分区组的级别进行数据库操作,而不是在单一的分区进行。这样能够使得操作更为简便。102、 如何建立数据库分区组?CREATE DATABASE PARTITION GROUP103、 默认添加的分区组都是那些?在建立数据库的时候,有三个分区组被默认添加:IBMCATGROUPIBMTEMPGROUP IBMDEFAULTGROUP104、 IBMCATGROUP分区组是什么?这个分区组只是DB2的目录表空间SYSCATSPACE在里面。只是含有一个分区,这个分区就是执行CREATE
在Oracle 10g和9i上对于开发者一些新的特性的总结
在Oracle 10g和9i上对于开发者一些新的特性的总结[@more@]在Oracle 10g和9i上对于开发者一些新的特性的总结1、 内部PL/SQL的增强一体化SQL和PL/SQL解析器在Oracle 9i之前,SQL引擎和PL/SQL引擎是分开的,但是在Oracle9i之后是合在一起的。内部PL/SQL性能的增强SQL和PL/SQL运行引擎的一体化。减少从SQL中调用PL/SQL。在10g中使用新的编译器。10g要比9i快50%到75%。在10g中使用新的Debugging Capabilities 。使用PL/SQL初始化参数PLSQL_WARNINGS。初始化参数PLSQL_WARNINGS有三种类型的选项:ENABLE允许使用警告,能够基于所有类型的警告和