Oracle数据完整性约束常用操作
信息查询
SELECT * from dba_cons_columns;
和
SELECT constraint_name, table_name, constraint_type, status, deferrable, deferred, validated from dba_constraints; 变更约束执行时间(是否延缓执行,只对可延缓约束有效)
SET CONSTRAINTS xxx IMMEDIATE; --立即
或
SET CONSTRAINTS xxx DEFERRED; --延缓 添加约束
ALTER TABLE xxx.yyy ADD CONSTRAINT event_evtid_pk PRIMARY_KEY (evtid) [DEFERRABLE [initially deferred]] USING INDEX STROAGE(INITIAL 300K NEXT 300K) TABLESPACE ccc; 改变约束状态
ALTER TABLE xxx.yyy ENABLE|DISABLE VALIDATE|NOVALIDATE CONSTRAINT ccc; 利用官方提供的system.Exceptions表查找违反约束的地方.
a.) 如果没有该表,运行$ORACLE_HOME\rdbms\admin目录下的utlexpt1.sql进行创建
例如: @D:\Tools\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlexpt1.sql
b.)执行语句是加上以下后缀: EXCEPTIONS INTO system.exceptions, 如:
ALTER TABLE scott.emp DISABLE NOVALIDATE CONSTRAINT PK_EMP;
INSERT INTO scott.emp(empno) VALUES (7788);
ALTER TABLE scott.emp ENABLE VALIDATE CONSTRAINT PK_EMP EXCEPTIONS INTO system.exceptions;
此时使用以下查询即可以找出问题:
SELECT rowid, this.* from scott.emp this WHERE ROWID IN (SELECT row_id from exceptions);
通过查询出来的rowid找到问题并解决之后,即可以改变约束状态了. 重命名约束
ALTER TABLE xxx.yyy RENAME CONSTRAINT ccc TO ccc_new; 删除约束
ALTER TABLE xxx.yyy DROP CONSTRAINT ccc [CASCADE];
相关文档:
首先来说Oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况
三个配置文件
listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下。
重点:三个文件的作用和使用
#------- ......
INTERVAL DAY TO SECOND数据类型
Oracle语法:
INTERVAL '{ integer | integer time_expr | time_expr }'
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] }
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ......
如果仅仅是lock,以下语句可以发现所有用户锁 :
SELECT s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
o.owner,
o.object_name,
&n ......
Step1. Insert empty_clob() into the Clob column of Oracle
Step2. Set autocommit to false
Step3. Select Clob as oracle.sql.CLOB from database
Step4. Insert String into Clob
Step5. Commit
Example:
import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
......
项目开发中,需要远程备份数据库,以下为C#远程备份数据库的代码
///
/// 数据库备份
///
/// dmp文件名称
/// log文件名称
///