相关疑难解决方法(0)

Oracle:LONG还是CLOB?

从这两个线程,

LONG过时且不赞成使用.甲骨文说,

不要创建包含LONG列的表.请改用LOB列(CLOB,NCLOB).仅支持LONG列以实现向后兼容性.

Oracle还建议您将现有的LONG列转换为LOB列.与LONG列相比,LOB列的限制要少得多.此外,LOB功能在每个版本中都得到了增强,而LONG功能在几个版本中都是静态的.

但是,如果没有此处提到的解决方法,您无法从远程数据库中读取CLOB .

我应该更喜欢在表格中存储一些文字?还是有比这两个更好的解决方案?

database oracle clob

10
推荐指数
1
解决办法
1万
查看次数

如何让Grails将我的String字段映射到Clob?

我的域类看起来像这样:

package com.initech.tps

class Foo
{
    String stuff

    static mapping = {
        // mapping to a legacy table as opposed to letting Grails create it
        table name: 'FOO', schema: 'TPS'
        id generator: 'sequence', params: [sequence: 'MY_SEQ'], 
            column: 'FOO_ID', sqlType: 'integer' 
        foo column: 'STUFF'
    }

    static constraints = {
        stuff(nullable: true, maxSize: 40000)
    }
} 
Run Code Online (Sandbox Code Playgroud)

我的印象是Grails会根据我为maxSize约束传递足够大的值而使用CLOB而不是VARCHAR,而是在控制台中收到此错误消息:

org.hibernate.HibernateException: Wrong column type in FOO for column STUFF. 
Found: clob, expected: varchar(40000)
Run Code Online (Sandbox Code Playgroud)

我是否需要在映射上使用显式的sqlType?我尝试使用不同的maxSize值,并将其完全删除,没有区别.还添加sqlType: clobsqlType: text不起作用.

我在Grails 1.3.7上,使用IBM DB2-Express.

db2 orm grails groovy grails-orm

6
推荐指数
1
解决办法
7200
查看次数

标签 统计

clob ×1

database ×1

db2 ×1

grails ×1

grails-orm ×1

groovy ×1

oracle ×1

orm ×1