首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

数据库中所有 narchar2字段怎样都改byte 为char,该怎么解决

2012-03-13 
数据库中所有 narchar2字段怎样都改byte 为char数据库中所有 narchar2字段怎样都改byte 为char[解决办法]S

数据库中所有 narchar2字段怎样都改byte 为char
数据库中所有 narchar2字段怎样都改byte 为char

[解决办法]

SQL code
写存储过程:--1: 用下面语句找到所有的VARCHAR2字段并用一个CURSOR储存:SELECT OWNER, TABLE_NAME, COLUMN_NAME, DATA_LENGTH  FROM ALL_TAB_COLUMNS WHERE DATA_TYPE = UPPER('VARCHAR2');--2: 遍历CURSOR循环动态执行ALTER COLUMN类型语句:EXECUTE IMMEDIATE 'ALTER TABLE '||CURSOR.OWNER||'.'||CURSOR.TABLE_NAME||' MODIFY ('||CURSOR.COLUMN_NAME||' CHAR('||CURSOR.DATA_LENGTH||'))';
[解决办法]
按用户修改数据类型,如修改SCOTT用户的

SELECT 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' MODIFY ('||COLUMN_NAME||' CHAR('||
DATA_LENGTH||'));' col
FROM all_tab_columns
WHERE owner='SCOTT' AND data_type=upper('VARCHAR2');
查询后:
----------------------------------------------------
ALTER TABLE SCOTT.BONUS MODIFY (ENAME CHAR(10));
ALTER TABLE SCOTT.BONUS MODIFY (JOB CHAR(9));
ALTER TABLE SCOTT.DEPT MODIFY (DNAME CHAR(14));
ALTER TABLE SCOTT.DEPT MODIFY (LOC CHAR(13));
ALTER TABLE SCOTT.EMP MODIFY (ENAME CHAR(10));
ALTER TABLE SCOTT.EMP MODIFY (JOB CHAR(9));

再把上面的脚本运行一下就可以了





热点排行