Welcome 微信登录

首页 / 数据库 / MySQL / 调整表的CHAR/VARCHAR2字段的Byte为CHAR

调整表的CHAR/VARCHAR2字段的Byte为CHAR使用如下SQL脚本即可:
  1. set serveroutput on  
  2. DECLARE  
  3. sqlstr varchar2(4000);  
  4. cursor sqlcurs is  
  5. select owner,table_name,column_name,data_type,CHAR_LENGTH from dba_tab_columns   
  6. where owner="ZFPT"  
  7. and data_type in ("CHAR","VARCHAR2") order by table_name,column_id;  
  8. begin  
  9. for str in sqlcurs loop  
  10.     sqlstr:="ALTER TABLE "||str.owner||"."||str.table_name||" MODIFY("||str.column_name||" "||str.data_type||"("||str.CHAR_LENGTH||" CHAR"||"))";  
  11.     dbms_output.put_line(sqlstr);  
  12.     --execute immediate sqlstr;   
  13. end loop;  
  14. end;  
  15. /  
注:对于那些作为分区列的字段不能修改,会出现如下错误,并且会退出,所以最好是把命令输出到一个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)
表情: 姓名: 字数