oracle constraints(1)
oracle 的约束主要是在业务逻辑层面维护数据的完整性。主要通过程序员在应用程序中规定约束或者通过定义触发器来维护数据完整性,最后是通过使用oracle自带的约束来维护数据完整性。能使用oracle自带的约束达到要求就尽量使用oracle自带的约束,因为使用触发器等用户自定义约束都会影响数据库的性能。例如:使用触发器时会对表进行锁定并进行表扫描或者索引扫描,这些都会降低数据库性能和并发性。
oracle 约束主要分为以下几种:
not null 非空约束, unique 唯一约束, primary key 主键约束, foreign key 外键约束, check 约束。
not null 非空约束:
创建方式:1, 建表时在列级别定义(也就是只能在定义表时将约束的定义写在该列后面),2种方式。一种使用自定义约束名称,一种是使用系统默认名称。
create table t
(
tid number(8) constraint NK_t1 not null,
tname varchar2(10) not null
)
SQL> select t.constraint_name, t.table_name, t.status, t.deferrable from user_constraints t;
CONSTRAINT_NAME TABLE_NAME STATUS DEFERRABLE
--------------- ------------------------------ -------- --------------
NK_T1 T ENABLED NOT DEFERRABLE
SYS_C003735 T ENABLED NOT DEFERRABLE
SQL>
2,在表建立后对表进行修改,但是要确保表中数据没有违反约束。
SQL> alter table t modify tid not null;
Table altered
SQL> select t.constraint_name, t.table_name, t.status, t.deferrable from user_constraints t;
CONSTRAINT_NAME TABLE_NAME STATUS DEFERRABLE
--------------- ------------------------------ -------- --------------
SYS_C003736 T ENABLED NOT DEFERRABLE
SQL>
check 约束
创建方式:可以在表级别和列级别进行定义(既可以在列后面定义也可以在列定义完后再定义)。也是2种定义方式。
SQL> create table t
2 (
3 tid number(8) ,
4 tname varchar2(10),
5 constraint CK_T1 check ((tid is not null) and (tid > 0))
相关文档:
Oracle 主要配置文件介绍:
profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件
1.2 Oracle 主要配置文件介绍
1.2.1 /etc/profile 文件
系统级的环境变量一般在/etc/p ......
概述
在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解。
sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数.
tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系 ......
如果说Redo是用来保证在故障时事务可以被恢复,那么Undo则是用来保证事务可以被回退或者撤销。
在修改操作中,对于回退段的操作存在多处,在事务开始时,首先需要在回滚段表空间获得一个事务槽,分配空间,然后创建前镜像,此后事务的修改才能进行,Oracle必须以此来保证事务是可以回退的。
如果用户提交了事务,Oracle会 ......
原文地址:http://hi.baidu.com/zengjl/blog/item/c06c8edeb2c7e45cccbf1aca.html/cmtid/305a850ea57b09ec37d1226c
1.查询表数据
SQL> select deptno,ename,sal
2 from emp
3 order by deptno;
DEPTNO ENAME SAL
......
现象:
oracle启动监听,报告如下错误:
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
原因:
lisenter.log 文件太大了,Oracle无法对它进行操作了,导致listener无法正常启动。
listener.log 超过2G就会出问题
方法:
法1. 移除原$ ......