spool off;
set heading on;
set feedback on;
@@c:\dropobj.sql;
host del c:\dropobj.sql;
注释:
1.上面这个语句,在pl/sql里面是放在命令里面执行的。
2.set heading off; 意思就是关闭表头。如果不关闭,写入dropobj.sql文件中就会带有结果集的表头如:
'DROPTABLE'||TABLE_NAME||';'
------------------------------------------
drop table TEACHER;
实际上我们需要的是“drop table TEACHER;”,“'DROPTABLE'||TABLE_NAME||';'
”就是表头。
3.set feedback off; 意思就是关闭回显。如果不关闭,写入dropobj.sql文件中就会带有返回结果集的大小等信息,如:"137 rows selected"
4.spool c:\dropobj.sql; 把结果集写入这个文件。spool off; 结束写入。
5.@@c:\dropobj.sql; 执行这个sql
6.host del c:\dropobj.sql; 删除主机上这文件。
7.CONSTRAINT_TYPE 就是键的类型:
附constraint_type:
select distinct constraint_type from dba_constraints;
Type Code | Type Description | Acts On Level |
C | Check on a table | Column |
O | Read Only on a view | Object |
P | Primary Key | Object |
R | Referential AKA Foreign Key | Column |
U | Unique Key | Column |
V | Check Option on a view | Object |
SELECT * FROM all_CONSTRAINTS where owner='SCOTT'
all_tab_cols显示所有列,当然也包含隐藏列。
all_tab_columns不显示隐藏列。来源于all_tab_cols;
查询字段,表的描述------------------------------------------
select * from all_col_comments where LOWER(TABLE_NAME)='all_constraints'
SELECT * FROM ALL_TAB_COMMENTS WHERE OWNER='SCOTT'
外键约束也称为主键完整性约束。它使用一列或多列作为外键,建立了此外键与同一张表或者另一张表的主键之间的关系。要确定一张数据表的外键,其他被引用的表及其主键必须已经存在。虽然外键与被引用的主键列不需要具有相同的名称,但是外键值必须与父表的主键值相匹配,或者外键值是空值。
查看一个表对应的主键和外键的约束关系
=============查看引用其它表的情况=========
select A.owner 原表拥有者,A.table_name 原表,A.constraint_name 约束名称
,A.constraint_type 约束类型,B.column_name 原表约束字段
,A.delete_rule 删除级联
,A.R_OWNER 引用表拥有者
,A.R_CONSTRAINT_NAME 引用约束名称
,AA.table_name 引用表
,BB.column_name 引用列
from all_constraints A
inner join all_cons_columns B
left join all_constraints AA
left join all_cons_columns BB
where A. owner='IUFO'
and A.table_name='IUFO_MEASURE'
--and A.CONSTRAINT_TYPE='R'
==========================================================================
=====查看被引用的情况===========================================
select A.constraint_name 被引用的约束名
from all_cons_columns A
left join all_constraints B
left join all_cons_columns AA
where
and B.CONSTRAINT_TYPE='R'
================================================================
所有表的记录数--------------------
select owner,table_name,num_rows from all_tables where owner='SCOTT'