来源:https://www.cnblogs.com/ufindme/p/5033843.html

今天遇到一个问题:要求在可重复执行的SQL脚本添加一段SQL代码:修改当前的数据类型。因为SQL代码放在重复执行的脚本中,那须考虑到数据类型满足条件时则不进行修改。一时不知道怎么解决。然后就搜索出上面链接的博文。最后解决了。

--如果当前字段不是varchar2(64)类型的则执行
prompt modify columns_name for temp.your_table_name ......
declare
v_rowcount integer;
begin
select count(*) into v_rowcount from dual where exists(
select t.* from User_Tab_Columns t
where table_name = upper('your_table_name')
and t.COLUMN_NAME = upper('columns_name')
and t.DATA_TYPE = 'VARCHAR2'
and t.DATA_LENGTH < 64);
if v_rowcount = 1 then
execute immediate 'alter table temp.your_table_name modify columns_name varchar2(64) default '' ''';
end if;
end;
/

下面是原博文转载过来的信息,博文原地址点这里

查看oracle表中列的数据类型

一、 SQLPLUS中,直接用 DESC[ribe] tablename 即可。

二、在外部应用程序调用查看ORACLE中的表结构时,只能用下面的语句代替:

1、看字段名与数据类型

select   *   from   cols     
WHERE TABLE_name=upper('table_name');
--(user_tab_columns缩写cols)

2、查看全部列

select   *   from   user_tab_columns   
where table_name = upper(‘tablename’);

3、查看某些列

select  column_name,data_type,data_length,DATA_PRECISION ,DATA_SCALE 
from all_tab_columns
where table_name=upper('tablename');

4、查看指定列的数据类型

select DATA_TYPE  
from User_Tab_Columns t
where t.column_name=upper('FIELDA列名')
and t.table_name =upper(trim('TEST2表名'));

5、通过user_constraints查看所有约束

select   *   from   user_constraints  where   table_name   =   upper('tablename');

6、查看主键约束:

select   *   from   user_constraints   where   constraint_type='P' and  TABLE_name=upper('table_name');

oracle查看某表字段类型的更多相关文章

  1. 解决:oracle+myBatis ResultMap 类型为 map 时,表字段类型有 Long/Blob/Clob 时报错

    前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,my ...

  2. SqlBulkCopy 批量导入数据 转换表字段类型

    在使用SqlBulkCopy导入数据时,要有一个跟数据库里面同样的DataTable 要赋值表名 要求每个列跟数据库中列同名,并且列的类型要赋值跟数据库中列的类型对应的NET类型 要求数据库中为Nul ...

  3. 使用SQL语句查询表及表字段类型说明

    今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...

  4. oracle 在表中有数据的情况下修改表字段类型或缩小长度

    分享自己一些常用的sql语句给大家 偶尔我们需要在已有表,并且有数据的情况下,修改其某个字段的类型或缩短他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. //建立测试表,可跳过(善于应 ...

  5. 修改非空表字段类型Oracle

    执行以下语句报"要修改数据类型,则要更改的列必须为空"       alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表 ...

  6. Oracle表字段类型更改的一个经验

    先前表中ID字段类型是用序列,由于安全问题,需要处理水平权限的漏洞,虽然使用加密也可以处理,为了更方便,需要将字段类型改为Guid,如果表中已经有数据,更改起来不是很方便,对于基础数据表,这里提供一个 ...

  7. Oracle修改表字段类型(number-->varchar2(len)),亲测可用

    思路: --新建临时表以存储正确的顺序create table A_2 as select (column1,colum2,……A表中的顺序) from A_1 ; --删除表A_1drop tabl ...

  8. Oracle 查看 使用 UNDO 段的事务脚本

    查看oracle undo segment段的信息: SELECT T1.USN, T2.NAME, T1.STATUS, T1.LATCH, T1.EXTENTS, T1.WRAPS, T1.EXT ...

  9. 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类

    http://www.cnblogs.com/lbangel/p/3487796.html 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的 ...

随机推荐

  1. 2190 ACM 数学概率论的乘法和加法原则

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2190 思路:明显我们要寻找 边长为n和边长为n-1,n-2,n-3·····的规律,这样得出一个递推公式就 ...

  2. vue中,class与style绑定

    <template> <div> <p v-bind:class="{active:isActive,'demo':Demo}">嘿嘿</ ...

  3. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  4. BZOJ4167 : 永远的竹笋采摘

    首先枚举出所有可能成为区间最小差值的点对$(j,i)$. 枚举每个位置作为右端点$i$,假设$a[j]>a[i]$. 找到第一个这样的$j$,那么可以将下一个$a[j]$的范围缩小到$(a[i] ...

  5. C++程序设计方法5:接口设计

    一切都在变化,因此程序要适应变化: 变化分层 封装 接口与隐藏: 接口:类暴露出来的部分,是类所提供的功能: 隐藏实现的细节: UML类图 接口在哪儿? 设计思路:从上到下设计 实现类的接口 细化

  6. Eclipse Maven pom.xml 警告No grammar constraints (DTD or XML schema)

    消除警告方案: <?xml version="1.0" encoding="UTF-8" standalone="no"?> & ...

  7. Html块标签、含样式的标签、语义化的标签:

    Html块标签: (1)<div>标签 块元素,表示一块内容,没有具体的语义 (2)<span>标签 行内元素,表示一行中的一小段内容,没有具体的语义 <p>标签 ...

  8. 数据格式JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...

  9. 移动端适配问题px->rem方法

    移动端web页面适配问题 1.引入插件 github地址:https://github.com/re54k/mobileweb-utilities/blob/master/util/mobile-ut ...

  10. .NET分布式缓存Redis从入门到实战

    一.课程介绍 今天阿笨给大家带来一堂NOSQL的课程,本期的主角是Redis.希望大家学完本次分享课程后对redis有一个基本的了解和认识,并且熟悉和掌握 Redis在.NET中的使用. 本次分享课程 ...