Oracle中Long类型的使用与不可使用
ORA-01754 表只能包含一个LONG类型的列
alter table 表名 add 字段名 long raw
错误原因:数据表中同时建立了LONG RAW类型和LONG类型。
--------------------------------------------------------------------------------------------------
一、可以在以下情况使用long字段:
1、 select的list列表。
SQL> insert into test_long values (1,'tgfdsfgdsgfsd');
已创建 1 行。
SQL> insert into test_long values (2,'asfafafasd');
已创建 1 行。
SQL> commit;
提交完成。
SQL> col id for 9999;
SQL> col description for a30;
SQL> select * from test_long;
ID DESCRIPTION
----- ------------------------------
1 tgfdsfgdsgfsd
2 asfafafasd
2、 update语句中的set子句:
SQL> update test_long
2 set description='hsy'
3 where id=2;
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from test_long;
ID DESCRIPTION
----- ------------------------------
1 tgfdsfgdsgfsd
2 hsy
3、 insert语句中的values子句中。
SQL> insert into test_long values (1,'tgfdsfgdsgfsd');
已创建 1 行。
二、 限制使用long型字段的情况:
1、 一个表中只能使用一个long型字段。
SQL> alter table test_long add (description1 long);
alter table test_long add (description1 long)
*
ERROR 位于第 1 行:
ORA-01754: 表只能包含一个 LONG 类型的列
2、 使用long属性来定义对象type。
SQL> Create type test_list as object(str1 varchar2(50),str2 long);
2 /
警告: 创建的类型带有编译错误。
SQL> Create type test_list as object(str1 varchar2(50),str2 number(5)) ;
2 /
类型已创建。
3、 Long字段不能出现在where子句中和完整性约束中。【除了null和not null约束】。
4、 Long字段不能用来indexed。
5、 存储函数不能用来返回long值。
6、 在plsql程序单元中可以使用long数据类型来定义变量或者参数。但是不能从sql中调用这个程序单元。
7、 在一个单一的sql语句中,所有的long字段,updated tables和locked tables必须位于同一个数据库。
8、 Long和long raw不能用在分布式sql语句中,不能复制。
9、如果表中同时有long和lob字段,在同一个sql语句中long和lob字段不能bind超过4000字节的数据。然而可以单独bind超多4000字节在只有long或者lob字段时。
10、 拥有long字段的表不能位于assm【自动段管理表空间】中。
三、 long字段不能出现在sql语句的部分位置:
1、 含有group by 、order by、connect by、distinct关键字的select语句中。
2、 带有unique操作的select语句。
3、 Create cluster语句的字段列表中。
4、 Create materialized view语句的cluster子句中。
5、 在function、expressions或contitions的内嵌sql中。
6、 含有group by子句的select列表查询中。
7、 含有union、intersect、minus的查询或者子查询中。
8、 Create table …as select语句的select 列表中。
9、 Alter table…move 语句中。
10、 Insert语句的子查询select 列表中。
四、 触发器可以用以下方式使用long字段:
1、 一个sql语句内部的trigger可以插入一个long字段。
2、 如果long字段的数据可以转换为constrained 数据类型(比如char和varchar2),此时可以引用在带有trigger的sql语句。
3、 触发器中的变量不能使用long定义。
4、 new和:old不能使用long字段。
总之:使用long字段的限制很多,使用情况很少,再加上oracle后期版本支持没有提高,所以强烈建议使用lob型来代替long型字段。
Oracle中Long类型的使用与不可使用的更多相关文章
- Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
感谢原作者:破剑冰-Oracle中Clob类型处理解析 上一篇分析:ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 最近为Clob字段在插入数据时发现当字符的字节数(一个半角字符一 ...
- oracle中日期类型 to_date 和to_timestamp什么区别啊?
1.to_date() 和to_timestamp()区别 由于oracle中date类型只支持到秒,不支持到毫秒,所以to_date()不能取到毫秒.如果要取到毫秒,oracle 9i以上版本,可以 ...
- .Net处理Oracle中Clob类型字段总结
最近在做项目中用到Clob这个字段,Clob是存储无限长字符的Oracle字段,用的时候网上找资料找了好久,内容不是很多,大部分都不能用,当然也有可以用的,测试了不同版本,整理了一下,给大家在做项目的 ...
- Oracle中Clob类型处理解析
最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在2000-4000之间时报错(ORA-01461:仅可以插入LONG列的 ...
- ORACLE中date类型字段的处理
(1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...
- Oracle中Clob类型处理解析 (转)
转:原文:http://blog.csdn.net/pojianbing/article/details/2789426 最近利用NHibernate映射类型为Clob字段在插入数据时发现当 ...
- Oracle中varchar2类型字段长度限制使用问题
为纪念中华人民共和国建军90周年,特此一篇,以此纪念,我军威武!!! 一.问题背景 项目中商品发布,却没有保存成功. 二.问题定位 初步判断向数据库中保存时出现了错误,查看日志文件,由于日志文件过大就 ...
- 对于Oracle中Number类型的字段映射成Java中的具体类型的问题
我在Oracle中给一个用户Id字段设置为Number类型,使用JDBC在完成ORM的时候,以为其可以自动转换为Integer,因为我的POJO类id使用的就是Integer.但事实是,我在测试的时候 ...
- oracle 中时间类型 date 与 long 互转
我们在保存时间到数据库时,有时候会保存long型的数据,固定长度是13位,是用当前时间减去1970-01-01,再换算成毫秒得到的结果. 但是要考虑到时区问题中国的时区时+8区所以时间要加上8小时 o ...
随机推荐
- Linux中如何新建用户
对于一般用户来说,主目录(home directory)是硬盘上唯一可以原来写东西的地方.一般的路径名是/home/login_user_name. 主目录用于存储各种用户文件:设置文件,程序配置文件 ...
- pod 命令-bash: --: command not found
pod 命令-bash: --: command not found 升级完系统执行 pod update 或者 pod install命令的时候出现: -bash: --: command not ...
- iOS中二维码的生成与使用(入门篇)
这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面 ...
- vim的全局替换
本文出自 http://blog.csdn.net/shuangde800 本文是在学习<使用vi编辑器, Lamb & Robbins编著>时在所记的笔记. 本文内容: 基本 ...
- [D3] 7. Quantitative Scales
# Quantitative Scales var colorScale = d3.scale.quantile() .domain([d3.max(dataset) / 4, d3.max(data ...
- NSString、NSMutableString基本使用
郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠,支持郝萌主.捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- 第33日 我疯了集成平台(六)-步履轻盈JQuery(四)
6一个月28日本,天阴下雨. " 微雨过,小荷翻,榴花开欲燃.玉盆纤手弄清泉,琼珠碎却圆." 古老的JavaScript,且乱且复杂.封装成库,青春焕发,这样人们 ...
- Linux发送监控指标到内部邮箱
数据库的健康监控是个很重要的工作.重要的指标\KPI监控结果会有专门的採集.监控.告警系统来做相关事情. 而一些不是很重要的或者还在设计和调试阶段的相关指标,我仅仅是想发送到我自己邮箱,本文就针对在s ...
- struts2 相关知识
struts2学习笔记 1.struts.properties struts.properties 是可以不要的!!!因为 struts.xml文件中 有 <constant> 这个节点, ...
- SourceTree - 好用的 Git / Mercurial GUI 管理工具 for Mac OS X
Git 是免費.開放源碼的分散式版本控制系統,從小專案到非常大的專案,都可以很快速.有效地管理. 對程式設計師來說,一定要熟記 git 指令的用法,在終端機下操作 git 是必備的基本技能.(其他的 ...