调整表的CHAR/VARCHAR2字段的Byte为CHAR使用如下SQL脚本即可:
- set serveroutput on
- DECLARE
- sqlstr varchar2(4000);
- cursor sqlcurs is
- select owner,table_name,column_name,data_type,CHAR_LENGTH from dba_tab_columns
- where owner="ZFPT"
- and data_type in ("CHAR","VARCHAR2") order by table_name,column_id;
- begin
- for str in sqlcurs loop
- sqlstr:="ALTER TABLE "||str.owner||"."||str.table_name||" MODIFY("||str.column_name||" "||str.data_type||"("||str.CHAR_LENGTH||" CHAR"||"))";
- dbms_output.put_line(sqlstr);
- --execute immediate sqlstr;
- end loop;
- end;
- /
注:对于那些作为分区列的字段不能修改,会出现如下错误,并且会退出,所以最好是把命令输出到一个sql脚本里面,然后在sqlplus命令行里面去执行,也可以写成存储过程然后捕获异常并继续。 ERROR at line 1:
ORA-14060: data type or length of a table partitioning column may not be changed
ORA-06512: at line 10Oracle 11g不能在创建具有重复列的函数索引了Oracle通过JOB定时创建序列相关资讯 Oracle基础
- Oracle基础介绍及常用相关SQL*PLUS (03月11日)
- Oracle 角色的两个特性和误区 (09/04/2012 05:56:16)
- Oracle rac11.2.0.3.0的vip在重启 (09/02/2012 10:00:39)
| - Oracle中删除用户遇到的问题 (09/08/2012 20:01:42)
- IMP-00008: unrecognized (09/02/2012 10:03:25)
- 在Oracle数据库上设置限制ip地址访 (09/02/2012 09:59:55)
|
本文评论 查看全部评论 (0)