格式化从varchar2到clob字段类型修改:
1.第一步,先备份要操作的表,如下
C:\Documents and Settings\Administrator>D:
D:\>cd D:\oracle\product\10.2.0\db_1\BIN
D:\oracle\product\10.2.0\db_1\BIN>exp 用户名/密码 tables=(BO_INFO_SEND) file=D:\
BO_INFO_SEND.dmp
2.清空要操作的表,(如有数据不能进行表结构的修改)
SQL> Truncate Table BO_INFO_SEND;
3. 先将操作的表中DESCRIPT字段,转换成LONG, 再将LONG类型转成clob类型(不知为何不能直接转成CLOB类型)
ALTER TABLE BO_INFO_SEND MODIFY DESCRIPT LONG;
ALTER TABLE BO_INFO_SEND MODIFY DESCRIPT CLOB;
4. 导入数据(不要导入表结构)即可:
D:\oracle\product\10.2.0\db_1\BIN>imp 用户名/密码 file=D:\BO_INFO_SEND.dmp ignore=y
(2)imp 用户名/密码@数据库名 FILE=/aa/bb/20110317.dmp LOG=20110317.log ignore=y fromuser=原用户名 touser=新用户名
---------------------------------------------上面那种方式好像没起到效果。
--------------------------------用下面的方式:
ALTER TABLE BO_INFO_SEND ADD (MONITOR_LIST_CLOB CLOB); --新增一列
UPDATE BO_INFO_SEND SET MONITOR_LIST_CLOB=MONITOR_LISt; --将内容复制
ALTER TABLE BO_INFO_SEND DROP COLUMN MONITOR_LIST; ----删掉旧列
ALTER TABLE BO_INFO_SEND RENAME COLUMN MONITOR_LIST_CLOB TO MONITOR_LIST; ---将新列改名
-------------------------------------------------
格式化:col first_name format a10;
1. desc ES_PROG_INSTALL;
2. alter table ES_PROG_INSTALL add id number(12) not null primary key;
alter table ES_BILL_FIELD_MAP modify id not null;
alter table sc_sys_para modify value_chname varchar2(512);
alter table people rename column sex1 to sex;
alter table people drop column sex;
--删除列 ALTER TABLE ES_BRANCH_REGISTER DROP COLUMN id;
3. 查询某个表中的主键字段名(这里是区分大小写的)
select col.column_name
from user_constraints con, user_cons_columns col
where con.constraint_name = col.constraint_name
and con.constraint_type='P'
and col.table_name = 'ES_PROG_INSTALL'
//下面是转换的,通用的sql。
select col.column_name
from user_constraints con, user_cons_columns col
where con.constraint_name = col.constraint_name
and con.constraint_type='P'
and upper(col.table_name) = upper('ES_PROG_INSTALL')
或者and lower(col.table_name) = lower('ES_PROG_INSTALL')
4.查询某个表中的字段名称、类型、精度、长度、是否为空
select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE
from user_tab_columns
where table_name ='ES_PROG_INSTALL'
5.--查找主键约束名
select T.constraint_name from USER_CONSTRAINTS T where table_name='ES_PROG_INSTALL' and constraint_type='P' AND ROWNUM<2;
结果是:PK_ES_PROG_INSTALL
--删除主键约束
ALTER TABLE ES_PROG_INSTALL DROP CONSTRAINT PK_ES_PROG_INSTALL;
--添加主键
alter table ES_PROG_INSTALL add constraint PK_ES_PROG_INSTALL primary key (id);
--添加唯一性约束、添加unique约束
alter table ES_BILL_FIELD_MAP add constraint UN_EC_BILL_FIELD_MAP unique(CUST_ID, FIELD_NAME)
--取消唯一性约束unique
alter table ES_BILL_FIELD_MAP drop constraint sys_c005472;
--删除索引
查找要删除的索引名称
运行此语句:
select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;
然后运行
drop index sys_coo5472;
--先用此语句查看某个表的所有约束:
select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper('&TABLE_Name');
删除表:drop table ES_BILL_FIELD_MAP
创建表:
create table ES_BRANCH_REGISTER (
ID NUMBER(12) not null constraint PK_ES_BRANCH_REGISTER primary key,
BRAN_ID NUMBER(12) not null,
SERIAL_NUM VARCHAR2(40) not null,
AUTH_STAT number(4) null,
VERSION VARCHAR(14) not null,
CREATED DATE default SYSDATE not null,
CREATED_BY number(12) not null,
STATUS VARCHAR(2) not null,
LAST_UPD DATE default SYSDATE null,
LAST_UPD_BY number(12) null,
REMARKS VARCHAR(100) null
)
***********************************************************************
参考如下:
--以表 student,study,score 为例
--1.增加列
alter table student add (sex varchar2(2) DEFAULT '女',age integer,address varchar(100)) ;
/
--2.修改列定义
ALTER TABLE student MODIFY sex VARCHAR2(4) DEFAULT '男';
/
--3.删除列
ALTER TABLE student DROP COLUMN address;
/
--4.修改列名
ALTER TABLE student RENAME COLUMN sid to sno;
/
ALTER TABLE student RENAME COLUMN sno to sid;
/
--5.修改表名
RENAME study TO Learn;
/
RENAME Learn TO study;
/
--6.增加注释
-- 给表添加释
COMMENT ON TABLE STUDY IS '学习信息表';
/
--给列添加注释
COMMENT ON COLUMN STUDY.SID IS '学员编号';
/
--7.增加外键关联
ALTER TABLE study ADD CONSTRAINT FK_study_R_student_S FOREIGN KEY (SID) REFERENCES student(SID);
/
--8.修改主键
--查找主键约束名
select T.constraint_name from USER_CONSTRAINTS T where table_name='STUDY' and constraint_type='P' AND ROWNUM<2;
/
--删除主键约束
ALTER TABLE study DROP CONSTRAINT PK_STUDY
/
--添加主键
alter table study add constraint PK_STUDY primary key (cid,sid);
/
commit;