精华内容
下载资源
问答
  • 1.在block中处理:不过PL/SQL代码只能处理不超过32K的数据,超过这个限制,就无法通过PL/SQL来处理。 SQL> SET SERVEROUT ON SQL> BEGIN2 FOR I IN (SELECT * FROM T_LONG) LOOP3 IF INSTR(I.LONG_COL, 'WORLD...

    原文来自 Techfox IT技术论坛

    1.在block中处理:不过PL/SQL代码只能处理不超过32K的数据,超过这个限制,就无法通过PL/SQL来处理。

    1. SQL> SET SERVEROUT ON
    • SQL> BEGIN
    • 2 FOR I IN (SELECT * FROM T_LONG) LOOP
    • 3 IF INSTR(I.LONG_COL, 'WORLD') > 0 THEN
    • 4 DBMS_OUTPUT.PUT_LINE(I.ID);
    • 5 END IF;
    • 6 END LOOP;
    • 7 END;
    • 8 /

    复制代码

    2.在全文索引的查询语法:SQL> CREATE INDEX IND_T_LONG_COL ON T_LONG(LONG_COL) INDEXTYPE IS CTXSYS.CONTEXT;索引已创建。

    1. SQL> SELECT ID FROM T_LONG WHERE CONTAINS(LONG_COL, 'WORLD') > 0;
    • ID
    • ----------
    • 1
    展开全文
  • Oracle中的long类型

    2019-05-07 16:25:58
    1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 2、对于超出一定长度的文本,基本只能用...4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 5、LONG 数据类型的使用中,要受限于磁盘的...

    1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。
    2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。
    3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
    4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。
    5、LONG 数据类型的使用中,要受限于磁盘的大小。

    能够操作 LONG 的 SQL 语句:
    1、Select语句
    2、Update语句中的SET语句
    3、Insert语句中的VALUES语句

    限制:
    1、一个表中只能包含一个 LONG 类型的列。
    2、不能索引LONG类型列。
    3、不能将含有LONG类型列的表作聚簇。
    4、不能在SQLPlus中将LONG类型列的数值插入到另一个表格中,如insert into …select。
    5、不能在SQL
    Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。
    6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。
    7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。
    8、LONG类型列不能用于分布查询。
    9、PL/SQL过程块的变量不能定义为LONG类型。
    10、LONG类型列不能被SQL函数所改变,如:substr、instr。

    展开全文
  • Oracle Long类型

    千次阅读 2015-07-22 10:52:30
    一、Long简介 1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 2、对于超出一定长度的文本,基本只能用LONG... 4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 5、LONG 数据类型...

    一、Long简介

    1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 
    2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。 
    3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。 
    4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 
    5、LONG 数据类型的使用中,要受限于磁盘的大小。 
    能够操作 LONG 的 SQL 语句: 
    1、Select语句 
    2、Update语句中的SET语句 
    3、Insert语句中的VALUES语句 


    二、一些限制
    1、一个表中只能包含一个 LONG 类型的列。 
    2、不能索引LONG类型列。 
    3、不能将含有LONG类型列的表作聚簇。 
    4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中,如insert into …select。 
    5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。 
    6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。 
    7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。 
    8、LONG类型列不能用于分布查询。 
    9、PL/SQL过程块的变量不能定义为LONG类型。 
    10、LONG类型列不能被SQL函数所改变,如:substr、instr。 
    因为long类型的数值不能用insert into … select的方法插入,故我们要分两步走,先插入其它字段,最后再插入long类型字段,这可以通过过程来实现.下面是一个我做实验实现的例子. 

    SQL> create table testlong (id number,name varchar2(12),history long);

    表已创建。
    SQL>  create table testlong1 (id number,name varchar2(12),history long);

    表已创建。

    SQL> insert into testlong values(1, 'dwh', 'work in foshan');

    已创建 1 行。

    SQL> insert into testlong values(2,'sfg','work in guangzhou');

    已创建 1 行。 
    SQL> select history from testlong;

    HISTORY
    ----------------------------------
    work in foshan
    work in guangzhou

     

    SQL> insert into testlong1 select * from testlong;
    insert into testlong1 select * from testlong
                                 *
    第 1 行出现错误:
    ORA-00997: 非法使用 LONG 数据类型 

     

    三、Hibernate自动建表时什么时候表字段的数据类型是Long

    1. 当hbm property的type=string或java.lang.String,此时如果length>4000 char, 则hibernate在建表时会见字段类型定义为Oracle Long

    2. 当hbm property的type=text时,则hibernate在建表时会见字段类型定义为Oracle Long

     

    四、开发中注意问题

    1. 一个表中不要出现两个字段的数据类型都是Oracle Long类型,否则会报错

    2. 尽量不要使用Oracle Long类型

     

    展开全文
  • 前言:mybatis 接收 oracleLONG 类型的,报错:无效的列类型: getCLOB not implemented for class oracle.jdbc.driver.T4CLongAccessor 注意  当表中有 long 类型的字段存在时,查询多条数据(列表)时能不...

    前言:mybatis 接收 oracle 中 LONG 类型的,报错:无效的列类型: getCLOB not implemented for class oracle.jdbc.driver.T4CLongAccessor

    注意

      当表中有 long 类型的字段存在时,查询多条数据(列表)时能不查这个字段就不查这个字段。因为查了这个字段会影响速度。

    情况

      oracle 表中有个字段为 LONG 类型,LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。(具体详解可以百度)

      由于数据库中的这张表是别的地方提供的,不能修改,只能查询,所以不能修改 oracle 表中这个字段的类型。

      所以只能处理当前问题。当前问题如下:java 实体使用 String 类型接ItemE,mybatis sql 中使用 resultMap 形式,sql resultMap 如下

    <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.yule.demo">
            <result column="ITEM_E" property="itemE" jdbcType="LONGVARCHAR"/>
        </resultMap>

      然后查询 sql 报错:

    解决方案

      将 sql 中的 LONGVARCHAR 改为 LONGVARBINARY 即可。

    <result column="ITEM_E" property="itemE" jdbcType="LONGVARBINARY"/>

     

     补充(转http://blog.csdn.net/loongshawn/article/details/50496460

    Mybatis JdbcType与Oracle、MySql数据类型对应列表

     

    MybatisJdbcTypeOracleMySql
    JdbcTypeARRAY  
    JdbcTypeBIGINT BIGINT
    JdbcTypeBINARY  
    JdbcTypeBIT BIT
    JdbcTypeBLOBBLOBBLOB
    JdbcTypeBOOLEAN  
    JdbcTypeCHARCHARCHAR
    JdbcTypeCLOBCLOBTEXT
    JdbcTypeCURSOR  
    JdbcTypeDATEDATEDATE
    JdbcTypeDECIMALDECIMALDECIMAL
    JdbcTypeDOUBLENUMBERDOUBLE
    JdbcTypeFLOATFLOATFLOAT
    JdbcTypeINTEGERINTEGERINTEGER
    JdbcTypeLONGVARBINARY  
    JdbcTypeLONGVARCHARLONG VARCHAR 
    JdbcTypeNCHARNCHAR 
    JdbcTypeNCLOBNCLOB 
    JdbcTypeNULL  
    JdbcTypeNUMERICNUMERIC/NUMBERNUMERIC/
    JdbcTypeNVARCHAR  
    JdbcTypeOTHER  
    JdbcTypeREALREALREAL
    JdbcTypeSMALLINTSMALLINTSMALLINT
    JdbcTypeSTRUCT  
    JdbcTypeTIME TIME
    JdbcTypeTIMESTAMPTIMESTAMPTIMESTAMP/DATETIME
    JdbcTypeTINYINT TINYINT
    JdbcTypeUNDEFINED  
    JdbcTypeVARBINARY  
    JdbcTypeVARCHARVARCHARVARCHAR

     


    注意到, MyBatis的JdbcType中部分没有对应到Oracle和Mysql的数据类型中(或许由于自己遗漏),不过不用担心,后续大家碰到再具体分析;同时上述对应关系不一定是一一对应,请大家了解。

    大家主要掌握基本的数字、时间、字符串就足以应对日常开发了。

     

      

    转载于:https://www.cnblogs.com/yuxiaole/p/9267399.html

    展开全文
  • Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值   今天设计了一张表存储请求和响应报文的表,针对这两个内容有两个字段,指定的类型为CLOB数据类型。然后插入数据库时,报错:Oracle中Clob类型...
  • Oracle 数据库中 Long 类型字段的读取

    万次阅读 2016-10-18 12:47:14
    最近在一个项目中遇到了需要读取 Oracle 数据库中的 Long 类型的字段的问题,折腾了好久,最后找到了其中的一个解决办法,决定记下了做个明灯吧!  这个项目用的是 Mybatis 做持久化,我能够改的只有映射文件 ...
  • oraclelong类型的总结

    千次阅读 2019-09-24 16:48:16
    1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 2、对于超出一定长度的文本,基本只能用LONG类型...4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 5、LONG 数据类型的使用中,要受限...
  • Mybatis 处理 Oracle中的LONG字段

    千次阅读 2019-07-05 17:18:18
    当使用mybatis查询oracle中带有LONG数据类型的时候,实体类...第二种方式:自定义函数将LONG类型转换为VARCHAR类型(百度,方法一大堆,都是) 第三种方式:首先在Mapper.xml文件中自定义resultMap映射关系,将LONG类型字...
  • Oracle数据库LONG类型移植

    千次阅读 2011-10-13 22:17:11
    LONG类型字段很原始使用时限制也很多,与LONG类型相对应的类型有CLOB,LONG类型虽然已经不建议使用但还是可以发现在Oracle数据字典相关的视图中还是有LONG类型的身影。 LONG类型的移植 可以直接通过DDL方式显示的...
  • 1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB...2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。 3、LONG类型主要用于不需要作字符串搜索的长...
  • oraclelong类型总结

    2010-01-09 15:53:00
    oraclelong类型的总结1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。3、LONG类型主要用于不...
  • java处理oraclelong数据类型

    千次阅读 2006-07-06 16:40:00
    碰到一个问题,我要讲一个表的字段(long型)覆盖另一个表的字段(long型),提示非法使用long数据类型。update xygl_mb a set mbyw =(select mbyw from xygl_mb@dblink_bluetest b where a.mbbz=b.mbbz);发到了...
  • 2.对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。 3.LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。 (Long类型是支持...
  • Hibernate框架映射Oraclelong类型字段

    千次阅读 2013-01-16 08:27:23
    Hibernate框架映射Oraclelong类型字段  第一次发博客,有不好之处望见谅。  好了,废话不多说,首先谈谈关于Oracle中的long类型。百度一下可知道。long在Oracle中并非同Java当中的基本数据类型long,前者是...
  • Oraclelong类型,坑爹的

    千次阅读 2013-02-17 10:18:48
    TO_LOB函数是一个很特殊的函数,特殊之处在于,这个函数可以处理LONG类型数据,而且这个函数和LONG类型一样,拥有很多的限制。不过,这些还不是很特殊的地方,下面简单看一下TO_LOB这个函数。  Oracle的LONG类型...
  • 今天在维护一个非常老的table时发现报“ORA-00997:非法使用 LONG 数据类型”的错误,查看了table的定义,发现其中一个列是LONG类型,经过查询对LONG类型有如下的操作限制: LONG使用说明: 1、LONG 数据类型中存储...
  • Java读取OracleLONG类型数据

    千次阅读 2019-02-21 16:23:29
    我在读取某张表的时候,发现,其中的一个字段的类型LONG(长字符串类型,最大可存储2G的内容), 然后我通过mybatis,查询数据库,自动封装到JavaBean中,用String类型来接受,发现报错(Causedby:java.sql....
  • oracle LONG 数据类型

    千次阅读 2008-07-15 08:41:00
    1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。 2、对于超出一定长度的文本,基本只能用LONG类型... 4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。 5、LONG 数据类型的使用中,要受限
  • 最近在查询数据时,突然遇到了这样一个场景,如何对一个字段类型long的字段进行模糊匹配。一顿操作以后发现不能使用like进行模糊查询,仔细查看了一下官方文档才发现,long数据类型并不支持该操作。 ...
  • 最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在2000-4000之间时报错(ORA-01461:仅可以插入LONG列的LONG值赋值)。经过不断查找资料和自己...
  • oracle数值类型--LONG类型

    千次阅读 2018-08-24 11:52:00
    首先要注意的是,Oracle文档在如何处理LONG类型方面描述得很明确。Oracle SQL Reference手册指出: 不要创建带LONG列的表,而应该使用LOB列(CLOB、NCLOB、BLOB)。支持LONG列只是为了保证向后兼容性。 1 LONG...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,818
精华内容 19,527
关键字:

oracle可以处理long类型的方法