declare
--所有外键约束
cursor c1 is
select t.table_name
,t.constraint_name
from user_constraints t
where t.owner = 'IVM'
AND T.constraint_type = 'R';
--所有业务表
cursor c2 is
select table_name
from user_tables t
where t.TABLE_NAME not in
('INTERVIEWMETHOD', 'MENU', 'ROLE', 'ROLE_MUNU', 'SYSTEMUSER');
stmt varchar2(4000);
begin
--01-禁用外键约束
for cc in c1 loop
BEGIN
stmt := 'alter table ' || cc.table_name || ' disable constraint ' ||
cc.constraint_name;
dbms_output.put_line(stmt);
execute immediate stmt;
end;
end loop;
--02-清空所有业务数据
for cc in c2 loop
BEGIN
stmt := 'TRUNCATE table ' || cc.table_name;
dbms_output.put_line(stmt);
execute immediate stmt;
end;
end loop;
--03-启用外键约束
for cc in c1 loop
BEGIN
stmt := 'alter table ' || cc.table_name || ' enable constraint ' ||
cc.constraint_name;
dbms_output.put_line(stmt);
execute immediate stmt;
end;
end loop;
--异常处理
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('error ' || stmt || ' sqlerr' || sqlerrm);
rollback;
end;
相关推荐
2. **约束问题**:存在外键约束和触发器的表在使用DUMP import时,禁用它们变得复杂,可能引发错误,导致数据不完整。 3. **数据恢复**:更新表后,需要将这些表的数据恢复到原始状态,DUMP import无法简单地清空并...
- **TRUNCATE**: 清空表中的所有数据,但保留表结构不变。 - **MERGE**: 用于条件性地更新或插入数据行。 - **EXPLAIN PLAN**: 用于分析并报告SQL语句的执行计划。 - **LOCK TABLES**: 锁定表以进行数据更改。 - **...
- **截断表**:使用“TRUNCATE TABLE”语句可以清空表中的所有数据,但保留表结构。 ### 三、问题解决方案 #### 3.1 检查目标数据库 - **确保目标数据库中存在所有必需的报表和视图**。可以通过查询系统元数据视图...
- **清空表数据同时释放存储空间:** - `TRUNCATE TABLE 表名 RELEASE STORAGE;` - 示例:`TRUNCATE TABLE new_employee RELEASE STORAGE;` **13. 查看表结构** - **查看表的结构:** - `DESCRIBE 表名;` - ...
清空表中的所有数据,但保留表结构。 - **清空表**: ```sql TRUNCATE TABLE userInfo_tab; ``` #### 三、视图管理 **1. 创建视图** 视图可以视为存储的查询结果,便于后续访问。 - **语法示例**: ```sql ...
禁用外键约束同样可以加快导入速度。 - **Include Storage**: 是否在 SQL 文件中包含 STORAGE 子句,默认值为 N。这对于保持表空间设置一致非常重要。 - **Include Privileges**: 是否在 SQL 文件中包含权限授予...
`可以快速清空表中的所有数据而不删除表结构。 2. **复制空表结构**:通过`CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1=2;`命令,可以创建一个新表,其结构与现有表相同但无数据。 3. **复制表(含...
- **3.6.2 删除表**:使用`DROP TABLE 表名`删除整个表及其所有数据。 **3.7 维护外部表** - **3.7.1 创建外部表**:用于直接访问文件系统中的数据文件。 - **3.7.2 更改、删除外部表**:可以修改外部表的定义或...
` 快速清空表中的所有数据。 - **4.7.2 删除表:** 如 `DROP TABLE table_name;` 完全删除表及其数据。 **4.8 维护外部表** - **4.8.1 创建外部表:** 如 `CREATE TABLE table_name (columns) ORGANIZATION ...
4. **TRUNCATE**: 清空表中的所有数据,但保留表结构。 - **基本语法**:`TRUNCATE TABLE table_name`。该操作比`DELETE`语句更快且不记录日志。 #### 二、数据操纵语言 (DML) 数据操纵语言(Data Manipulation ...
- **其他DDL操作**:包括DROP TABLE、TRUNCATE TABLE等用于删除或清空表的操作。 #### DML (数据操纵语言) - **插入数据**:使用INSERT语句添加新记录。 - **更新数据**:利用UPDATE语句来修改已有记录。 - **删除...
`:快速清空表数据,与DELETE相比,不触发任何约束或触发器,速度更快,但不记录事务日志,不能回滚。 - `ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;`:暂时禁用约束,用于大容量数据导入或临时...
- **截断表**:使用`TRUNCATE TABLE`语句快速清空表内容。 #### 五、约束 - **数据完整性**: - **实体完整性**:确保每个表有一个主键。 - **参照完整性**:维护表之间的关系,确保引用完整性。 - **域完整性*...