数据库中所有 narchar2字段怎样都改byte 为char
解决方案 »
- 求一SQL排序
- 登陆不了em
- oracle的clob字段转换成字符时的缓冲区溢出问题
- oracle 索引的问题
- 请教各位oracle DB和爱好者高手们,由于我的数据库产生的归档日志太大,我要如何处理可以把以前产生的归档文件删除掉让它重新开始产生,但又不影响备以后数据库出问题后来恢复它。
- pl/sql连接oracle,使用UpdateSet命令时,招行到一半时取消,会不会有可能只执行了一部分修改操作?
- 查询数据的存储过程怎么写啊,老是invalid,
- 刚学ORACLE,手工创建数据库时老出错,不知道为什么,还请高手帮忙!
- 建表问题
- 关于在触发器中操作LOB字段
- 兄弟们帮忙,dataguard的问题
- 情人节...加班中...散分!!!
--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||'))';
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));再把上面的脚本运行一下就可以了
我理解,楼主是想要这样的sql:
alter table scott.bonus modify(ename varchar2(10 char));
而oracle默认是:
varchar2(10 byte);
那给分了昨天已经搞定 笨办法
把建表脚本给改了哈然后先drop掉了表再重新建立了哈