首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>oracle>正文

教你如何在数据字典中修改Oracle的表列名

http://www.oklinux.cn  2007-12-06  赛迪网 29331  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

在Oracle数据库中没有提供直接修改表中列名称的功能,但在实际使用时常需要修改表的列名和列顺序,在不得已的情况下,有些Oracle的使用者用重新创建一个新的具有正确列名和顺序的数据库表,再将旧表的数据转储进来,最后删除旧表并将新表重命名为旧表的方法来完成此功能。此方法的最大问题是要求有双倍的存储空间、较大的回滚段和较长的时间,假如表中数据量较大,这项工作开销会很大。实际上我们可以从数据字典中直接修改表列的名称和顺序。下面是实现的具体步骤:

◆以internal用户名登录Oracle数据库,并创建一测试表。

以下是引用片段: 
SQL>CREATE TABLE SCOTT.TEST AS SELECT EMPNO,
ENAME FROM SCOTT.EMP;
SQL>DESC SCOTT.TEST 
Name Type Nullable Default Comments 
------- ------------ ------- 
EMPNO NUMBER(4) Y 
ENAME VARCHAR2(10) Y

下面需要要把SCOTT.TEST表中EMPNO和ENAME两列调换顺序,并把ENAME列更名为EMP_NAME,EMPNO改为EMP_NO。

◆查询表中列的实际存储位置或表。

  SQL>SET LONG 9999

  由于TEXT列是LONG类型,只有“SET”之后才能完全显示。

  SQL>SELECT TEXT FROM ALL_VIEWS

  WHERE VIEW_NAME = ‘USER_TAB_COLUMNS’;

数据字典视图USER_TAB_COLUMNS中存储有表列的定义信息,从该语句的查询结果可以看出,列定义信息是存储在表SYS.COL$中的,即假如修改表中列的定义,应该在SYS.COL$表中修改。

◆从数据字典视图ALL_OBJECTS中查找对象SCOTT.TEST对象ID。

SQL> SELECT * FROM ALL_OBJECTS WHERE OWNER =‘SCOTT’

AND OBJECT_NAME=‘TEST’;

◆根据SCOTT.TEST对象的ID,从SYS.COL$检索出表中列的定义信息。

  SQL> SELECT OBJ#,COL#,NAME FROM SYS.COL$ WHERE OBJ# =13888;

  OBJ# COL# NAME

  ---------- ---------- -------

  13888 1 EMPNO

  13888 2 ENAME
共3页: 上一页 1 [2] [3] 下一页

上一篇:Oracle数据库中的Instance和数据库的区别   下一篇:了解Oracle11g的新增特性—INTERVAL分区

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·了解Oracle11g的新增特性—INTERVAL分区
·Oracle数据库中的Instance和数据库的区别
·实用技巧:取得指定的记录与使用外关联查询
·设置CURSOR_SHARING为SIMILAR后产生的bug
·三个步骤手工扩大Oracle数据库的表空间
·如何使用RMAN和dbv检查数据文件中的坏块
·Oracle中pfile和spfile之间的联系与区别
·如何创建访问非"Oracle文件"的外部表格
·巧用Flashback database功能恢复用户错误
·在Oracle中使用自治事务保存日志表条目
·Oracle9i中如何监视索引并清除监视信息
·解决Oracle非法数据库对象引起的错误
·如何检测Oracle数据库可用性和表空间容量
·快速掌握Oracle体系结构中的各种名称
·在 Oracle Enterprise Linux 上升级到 Oracle RAC 11g
·Oracle数据库自动备份的具体实现步骤
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·关于Oracle将目标数据库设为归档模式应
·Linux下OCI基础:配置Instant Client连
·Oracle中被锁定的解决办法
·Oracle 11G 无法连接到数据库实例故障
·浅谈创建Oracle数据库连接的两种方法
·如何从Oracle技术支持获得更多
·Oracle数据库中安全知识介绍
·Oracle推出Linux服务并不成功
·Oracle专用服务器的内存结构分布原则
·如何在RAC环境下修改Oracle字符集
·Oracle过程中执行动态SQL或DDL语句
·2008年Oracle错误、备份、升级等最热门
  阅读排行
·详解远程SHELL下安装配置RedHat ES 5的
·Ubuntu上安装Oracle 10G及相关配置
·Oracle高级复制(同步复制)配置步骤详细
·如何修改遗失的MySQL的ROOT用户密码
·Redhat Linux AS4 安装Oracle 10g(包括
·Linux下OCI基础:配置Instant Client连
·解决启动数据库时发生的ORA-12528错误
·在 Oracle Enterprise Linux 上升级到
·Oracle 10g表空间创建的完整步骤
·centos 5.0中成功安装Oracle10g (1020
·如何在RAC环境下修改Oracle字符集
·Oracle数据库导入导出方法的个人总结
·巧用Oracle执行计划机制提高查询性能
·Oracle 10g 在AIX 5.3上安装过程笔记
·Linux真机环境Oracle 10gR2 RAC 安装完
网摘收藏: