转载地址:http://blog.csdn.net/wxdzxl/article/details/8063774
一。判断Oracle表是否存在的方法
- declare tableExistedCount number; --声明变量存储要查询的表是否存在
- begin
- select count(1) into tableExistedCount from user_tables t where t.table_name = upper('Test'); --从系统表中查询当表是否存在
- if tableExistedCount = 0 then --如果不存在,使用快速执行语句创建新表
- execute immediate
- 'create table Test --创建测试表
- (ID number not null,Name = varchar2(20) not null)';
- end if;
- end;
二。判断Oracle表中的列是否存在的方法
- declare columnExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表中的列是否存在
- select count(1) into columnExistedCount from user_tab_columns t where t.table_name = upper('Test') and t.column_name = upper('Age');
- --如果不存在,使用快速执行语句添加Age列
- if columnExistedCount = 0 then
- execute immediate
- 'alter table Test add age number not null';
- end if;
- end;
三。判断Oracle表是否存在主键的方法
- declare primaryKeyExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)
- select count(1) into primaryKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'P';
- --如果不存在,使用快速执行语句添加主键约束
- if primaryKeyExistedCount = 0 then
- execute immediate
- 'alter table Test add constraint PK_Test_ID primary key(id)';
- end if;
- end;
四。判断Oracle表是否存在外键的方法
- declare foreignKeyExistedCount number; --声明变量存储要查询的表中的列是否存在
- begin
- --从系统表中查询表是否存在主键(因一个表只可能有一个主键,所以只需判断约束类型即可)
- select count(1) into foreignKeyExistedCount from user_constraints t where t.table_name = upper('Test') and t.constraint_type = 'R' and t.constraint_name = '外键约束名称';
- --如果不存在,使用快速执行语句添加主键约束
- if foreignKeyExistedCount = 0 then
- execute immediate
- 'alter table Test add constraint 外键约束名称 foreign key references 外键引用表(列)';
- end if;
- end;