`
xpenxpen
  • 浏览: 703646 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用user_tab_columns获取表结构

阅读更多
1.简介
Oracle里面,视图SYS.USER_TAB_COLS和SYS.USER_TAB_COLUMNS都保存了当前用户的表、视图和Clusters中的列信息。通过检索这两个表,可以方便的获取到表的结构。

利用下面这条SQL语句可以获得当前用户的表结构:
select * from user_tab_columns


2.妙用
可以利用Oracle的这个特性,做数据库的升级维护工作。
比如我们要重构一张表,增加xx字段。普通的DDL语句一般都这么写没问题:
alter table A add (xx varchar2(255))

然后如果我们做的好一点,还要求这个升级脚本是可以重复执行的。那怎么办呢?
可以写一个pl sql,逻辑是先到user_tab_columns去查询这张表是否有xx字段,如果没有,就execute immediate上面这句DDL语句。否则如果已经存在就不做事了。
分享到:
评论

相关推荐

    解析如何查看Oracle数据库中某张表的字段个数

    Oracle中查询某个表的总字段数,要用SQL语句,或者在PL/SQL里面 代码如下:select count(column_name) from user_tab_columns where table_name=’T_B_AUDITOR’能够查出来指定的那张表的字段数。下面是通过大致查看...

    orcale常用命令

    c、显示表结构命令DESCRIBE SQL>DESC 表名 d、SQL*Plus中的编辑命令 显示SQL缓冲区命令 SQL>L 修改SQL命令 首先要将待改正行变为当前行 SQL>n 用CHANGE命令修改内容 SQL>c/旧/新 重新确认是否已正确 SQL>L 使用...

    SQL培训第一期

    select * from user_tab_columns t where t.column_name like '%ORGANCODE%'; 2.1.5.3 user_tablespaces 当前用户表空间 2.1.5.4 dba_users 数据库所有用户 2.1.5.5 dba_tables 数据库所有表 2.1.5.6 dba_...

    最全的oracle常用命令大全.txt

    c、显示表结构命令DESCRIBE SQL>DESC 表名 d、SQL*Plus中的编辑命令 显示SQL缓冲区命令 SQL>L 修改SQL命令 首先要将待改正行变为当前行 SQL>n 用CHANGE命令修改内容 SQL>c/旧/新 重新确认是否已正确 SQL>L 使用...

    数据库操作语句大全(sql)

    A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table...

    经典SQL语句大全

    A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table...

    sql经典语句一部分

    A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table...

    MySQL命令大全

    2、获取表结构 命令:desc 表名,或者show columns from 表名 mysql>DESCRIBE MyClass mysql> desc MyClass; mysql> show columns from MyClass; 3、删除表 命令:drop table <表名> 例如:删除表名为 ...

    MYSQL常用命令大全

    2、获取表结构 命令: desc 表名,或者show columns from 表名 mysql>DESCRIBE MyClass mysql> desc MyClass; mysql> show columns from MyClass; 3、删除表 命令:drop table <表名> 例如:删除表名为 MyClass 的...

    MySQL 入门学习 ——基础教程

    创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在 CREATE TABLE语句中列出的列次序给出,例如: abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa ...

Global site tag (gtag.js) - Google Analytics