- 浏览: 607012 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
niuqiang2008:
谢了谢了 就是要找这个问题
struts2的<s:set><s:if>标签应用 -
love_zongming:
赞一个! 谢谢分享
向eclipse中添加user library的方式 -
MyPointOne:
后面的异常为什么出现?好像没说清楚!
Jboss中的web-console与jmx-console的配置 -
nysin:
顶一个,现在明白了...
JAVA静态和非静态内部类 -
chenhua_1984:
很不错!
Cause: net.sf.cglib.beans.BulkBeanException异常
查看表TEST_PHONE_TAB的元数据:
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DUQ_TEST_TBS01"
建立主键(包含一个同名索引和一个同名唯一约束)
已用时间: 00: 00: 00.31
SQL> alter table test_phone_tab add constraint test_phone_pk primary key(mobile);
表已更改。
已用时间: 00: 00: 00.01
查看修改表后的元数据:
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEX
已用时间: 00: 00: 00.26
查看该表的索引的元数据
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','TEST_PHONE_PK')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SCOTT"."TEST_PHONE_PK" ON "SCOTT"."TEST_PHONE_TAB" ("MOBILE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
已用时间: 00: 00: 00.23
禁用约束:test_phone_pk
SQL> ALTER TABLE test_phone_tab disable constraint test_phone_pk;
表已更改。
已用时间: 00: 00: 00.03
禁用约束test_phone_pk后,再次查看该约束的元数据。但数据字典中已经没有了
该索引。证明如果约束有索引,在禁用约束的时候,会自动删除其对应的索引。
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
ERROR:
ORA-31603: 对象 "TEST_PHONE_PK" 属于类型 INDEX, 在方案 "SCOTT" 中未找到
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: 在 "SYS.DBMS_METADATA", line 2697
ORA-06512: 在 "SYS.DBMS_METADATA", line 4220
ORA-06512: 在 line 1
未选定行
已用时间: 00: 00: 00.45
查看禁用约束后的表的元数据。
此时约束‘TEST_PHONE_PK’的状态为‘DISABLE’。即:禁用。
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE") DISABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DUQ_TEST_TBS01"
已用时间: 00: 00: 00.21
SQL> ALTER TABLE test_phone_tab enable constraint test_phone_pk;
表已更改。
已用时间: 00: 00: 00.01
查看启用约束后的表的元数据。
此时约束‘TEST_PHONE_PK’的状态为已不为‘DISABLE’。即:启用。
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEX
已用时间: 00: 00: 00.28
启用约束后,其对应的索引已自动创建。
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','TEST_PHONE_PK')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SCOTT"."TEST_PHONE_PK" ON "SCOTT"."TEST_PHONE_TAB" ("MOBILE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
已用时间: 00: 00: 00.09
找到违反约束条件的行
创建exceptions表。
1.执行脚本:
表已创建。
已用时间: 00: 00: 00.12
3.创建一个未启用的主键:
4.修改表中数据,让其有重复记录。
已用时间: 00: 00: 00.00
已更新 1 行。
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
5.启用主键约束,并让违反约束条件的行插入表exceptions中。
SQL> alter table tt1 enable constraint tt1_pk exceptions into exceptions;
alter table tt1 enable constraint tt1_pk exceptions into exceptions
*
第 1 行出现错误:
ORA-02437: 无法验证 (SCOTT.TT1_PK) - 违反主键
已用时间: 00: 00: 00.03
6.查看违反约束条件的记录的详细信息
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DUQ_TEST_TBS01"
建立主键(包含一个同名索引和一个同名唯一约束)
已用时间: 00: 00: 00.31
SQL> alter table test_phone_tab add constraint test_phone_pk primary key(mobile);
表已更改。
已用时间: 00: 00: 00.01
查看修改表后的元数据:
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEX
已用时间: 00: 00: 00.26
查看该表的索引的元数据
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','TEST_PHONE_PK')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SCOTT"."TEST_PHONE_PK" ON "SCOTT"."TEST_PHONE_TAB" ("MOBILE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
已用时间: 00: 00: 00.23
禁用约束:test_phone_pk
SQL> ALTER TABLE test_phone_tab disable constraint test_phone_pk;
表已更改。
已用时间: 00: 00: 00.03
禁用约束test_phone_pk后,再次查看该约束的元数据。但数据字典中已经没有了
该索引。证明如果约束有索引,在禁用约束的时候,会自动删除其对应的索引。
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
ERROR:
ORA-31603: 对象 "TEST_PHONE_PK" 属于类型 INDEX, 在方案 "SCOTT" 中未找到
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: 在 "SYS.DBMS_METADATA", line 2697
ORA-06512: 在 "SYS.DBMS_METADATA", line 4220
ORA-06512: 在 line 1
未选定行
已用时间: 00: 00: 00.45
查看禁用约束后的表的元数据。
此时约束‘TEST_PHONE_PK’的状态为‘DISABLE’。即:禁用。
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE") DISABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "DUQ_TEST_TBS01"
已用时间: 00: 00: 00.21
SQL> ALTER TABLE test_phone_tab enable constraint test_phone_pk;
表已更改。
已用时间: 00: 00: 00.01
查看启用约束后的表的元数据。
此时约束‘TEST_PHONE_PK’的状态为已不为‘DISABLE’。即:启用。
SQL> select dbms_metadata.get_ddl('TABLE','TEST_PHONE_TAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','TEST_PHONE_TAB')
--------------------------------------------------------------------------------
CREATE TABLE "SCOTT"."TEST_PHONE_TAB"
( "MOBILE" VARCHAR2(15),
"SENDCOUNT" NUMBER(20,0),
CONSTRAINT "TEST_PHONE_PK" PRIMARY KEY ("MOBILE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEX
已用时间: 00: 00: 00.28
启用约束后,其对应的索引已自动创建。
SQL> select dbms_metadata.get_ddl('INDEX','TEST_PHONE_PK') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','TEST_PHONE_PK')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SCOTT"."TEST_PHONE_PK" ON "SCOTT"."TEST_PHONE_TAB" ("MOBILE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
已用时间: 00: 00: 00.09
找到违反约束条件的行
创建exceptions表。
1.执行脚本:
@%ORACLE_HOME%\RDBMS\ADMIN\utlexpt1.sql 2.SQL> create table tt1 as select * from emp;
表已创建。
已用时间: 00: 00: 00.12
3.创建一个未启用的主键:
SQL> alter table tt1 add constraint tt1_pk primary key(empno)disable;表已更改。
4.修改表中数据,让其有重复记录。
已用时间: 00: 00: 00.00
SQL> update tt1 set empno=7900 where empno=7902;
已更新 1 行。
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
5.启用主键约束,并让违反约束条件的行插入表exceptions中。
SQL> alter table tt1 enable constraint tt1_pk exceptions into exceptions;
alter table tt1 enable constraint tt1_pk exceptions into exceptions
*
第 1 行出现错误:
ORA-02437: 无法验证 (SCOTT.TT1_PK) - 违反主键
已用时间: 00: 00: 00.03
SQL> select * from exceptions; ROW_ID --------------------------------------------------------------------------------------------------------- OWNER TABLE_NAME CONSTRAINT ------------------------------ ------------------------------ ------------------------------ AAAMeQAAEAAAAHkAAM SCOTT TT1 TT1_PK AAAMeQAAEAAAAHkAAL SCOTT TT1 TT1_PK 已用时间: 00: 00: 00.01
6.查看违反约束条件的记录的详细信息
SQL> select * from tt1 where rowid in( 2 select row_id from exceptions); EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7900 JAMES CLERK 7698 03-12月-81 950 30 7900 FORD ANALYST 7566 03-12月-81 3000 20 已用时间: 00: 00: 00.01
发表评论
-
Tomcat6.x + P6spy + SqlProfiler集成
2013-05-07 15:57 1150具体内容见附件!! -
SYBASE数据库总结
2010-11-02 15:57 2444SYBASE中插入数据的方式有: 1. INSERT IN ... -
ORACLE导入数据文件到指定的表空间
2010-08-10 21:28 9057最近工作中碰见ORACLE导入数据文件到指定的表空间中的事,虽 ... -
oracle中的merge
2010-06-23 14:22 1172本文来源于: http://www.c ... -
oracle temporary table
2010-06-23 14:13 1189oracle临时表 本文引用于 ... -
Cannot create PoolableConnectionFactory 异常
2010-05-25 13:52 6250今天在巡检服务器的时候,发现了如下异常信息: org.apac ... -
DBMS_RANDOM.VALUE OR DBMS_RANDOM.STRING
2010-04-20 15:42 2199ORACLE中随机数的包的源文件目录是:{ORACLE_HOM ... -
索引的合并、重建与监视
2010-03-30 10:25 2244查看当前用户的所有索引: SQL> select ind ... -
ORACLE数据库冷备份
2010-03-29 17:50 1729一:先构建数据库冷备 ... -
oracle主键和外键
2010-03-25 16:11 5346主键和外键 CREATE TABLE "SCOTT ... -
SQLLDR高级用法
2010-03-22 17:57 3039load data infile * into table I ... -
oracle数据字符集和排序
2010-03-22 13:46 1970今天难得有点小时间,实际操作了一下关于oracle数据库中的字 ... -
外部表
2010-03-21 15:47 1603在使用oracle数据库时,对oracle中的外部表的操作只能 ... -
case when
2010-03-15 21:24 0ORACLE 分类统计符合各个条件的个数 (case when ... -
级联删除
2010-02-05 13:49 1384--create table a and b --主表 ... -
oracle中关于查看角色与角色间权限的差异的SQL语句
2010-01-05 22:06 2248前段时间看了一些oracle的书,现在把书中一些关于角色,权限 ... -
自己的记录
2009-12-29 21:54 0oracle定义游标变量: TYPE v_cursor is ... -
oracle系统表空间system和sysaux使用率很高
2009-12-14 19:31 4377今天忽然看见自己的oracle数据库的系统表空间system, ... -
solaris上安装oracle
2009-11-19 17:50 1875今天在solaris上安装oracle10g的时候,系统提示s ... -
Oracle的参数文件和服务器参数文件
2009-11-08 15:46 1614在ORACLE中通过存在的参数文件创建服务器参数文件 因为s ...
相关推荐
约束禁用 –如果有大批量数据导入时,我们可以采用禁用约束的方法, 主要的好处,首先效率高,另外有主外键约束的表之间导 入时,不用考虑导入的先后顺序。 –禁用约束语法: ALTER TABLE table DISABLE ...
oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints ...
说明:Oracle中想要禁用或启用一个账户也同样是使用alter user 命令来完成,只是语法和修改密码有所不同。 用法: 禁用 alert user 用户名 account lock 启用 alert user 用户名 account unlock 4. 删除用户 说明:...
备份约束条件 3-10 并行备份集 3-11 压缩备份 3-13 映像副本 3-14 备份和映像副本的标记 3-16 BACKUP 命令选项 3-17 备份归档重做日志 3-19 数据库整体备份 3-21 RMAN 备份类型 3-23 差异与累积 3-25 块...
3.启用和禁用角色 102 4.修改用户设置的角色 102 5.删除角色 102 四. 练习 102 五. 练习 103 六. 练习 104 七. 练习 105 第13讲 备份与恢复 106 一.数据库备份概述 106 1.备份和恢复 106 2.备份的类型 106 二....
11、2007.11.28 Oracle、MySQL下导入数据增加禁用、重新启用外键约束处理。 12、2007.11.28 更正MySQL下处理导入日期类型字段数据问题。 13、2007.11.28 更正SQLServer下处理sql_variant、...
讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中的具体应用。...
1.Oracle的构件和组件...................................... 2.数据库的物理结构:...................................... 1.控制文件................................................ 2. 数据文件...............
支持Kerberos 5协议转换和约束委派 默认情况下禁用Kerberos 5弱加密类型 用于GSS-API / Kerberos 5机制的未绑定SASL 多个主机名的SASL服务 JNI在Mac OS X上桥接到本机JGSS 在SunJSSE提供商中支持更强大的临时DH...