我有一个用grails 2.2.5编写的应用程序,它需要与MySQL、Oracle和SQL Server连接,这取决于我的客户。我们有1000多个查询使用不同的类返回实例。
示例:
import br.com.aaf.auditoria.*
def query="select distinct tipo from Atividade c join c.tipoAtividade tipo order by tipo.nome"
def ret=Atividade.executeQuery(query)
ORA-00932:不一致的数据类型:预期的-得到的CLOB
我知道Grails/Hibernate使用domain类的所有属性将sql发送到数据库,并作为该类的实例返回。这种情况是,我只需要比较或分组域类的id,就可以创建一个distinct类,但是我需要结果是类的实例,而不是id,所以我不需要更改所有的查询。
如果我需要定制一个方言来捕捉Hibernate在SQL中转换HQL时所做的事情,那么您是否知道一种方法来更改HQL中distinct的行为?
该解决方案只适用于oracle DB。您必须为架构授予某些特权。“创建类型”和“在dbms_crypto上执行”
create table clob_test (id number, lob clob);
insert all
into clob_test values(1,'AAAAAAAA')
into clob_test values (2,'AAAAAAAA')
into clob_test values(3,'BBBBBBBB')
into clob_test values(4,'BBBBBBBB')
select * from dual;
commit;
CREATE OR REPLACE
type wrap_lob as object(
lob clob,
MAP MEMBER FUNCTION get_hash RETURN RAW
)
;
/
CREATE OR REPLACE
TYPE BODY wrap_lob is
MAP MEMBER FUNCTION get_hash RETURN RAW is
begin
return DBMS_CRYPTO.HASH(lob,1);
end;
end;
/
select tab.dist_lob.lob from (select distinct wrap_lob(lob) dist_lob from clob_test) tab;
问题内容: 我试图将一个超过4000个字符的值写入Oracle Clob字段。这似乎是一个普遍的问题,但是似乎没有解决方案可以奏效。所以我从这里祈祷寻求帮助。 故障和肮脏的信息:使用Oracle 9.2.0.8.0 Hibernate3实现带有注释 Tomcat的pojo Tomcat 6.0.16 Oracle 10.2.x驱动程序 C3P0连接池提供程序 在我的persistence.xml中
使用java和jmstemplate,我试图用包含CLOB字段的有效负载将消息编入oracle队列。 我的问题是你是怎么做这种事的?在谷歌上,有各种各样的建议表明我必须: 用空加载对消息进行排队 使用步骤1中创建的消息id从队列表中检索usr_data 将clob写入队列表。 约安。
主要内容:Oracle SELECT DISTINCT语句简介,Oracle DISTINCT示例在本教程中将学习如何使用Oracle 语句从表中查询不同(过滤相同值)的数据。 Oracle SELECT DISTINCT语句简介 在SELECT语句中使用子句来过滤结果集中的重复行。它确保在子句中返回指定的一列或多列的值是唯一的。 以下说明了语句的语法: 在上面语法中,表的列中的值将进行比较以过滤重复项。 要根据多列检索唯一数据,只需要在子句中指定列的列表,如下所示: 在此语法中,,和中的值的
你知道怎么解决这个问题吗?它来自Oracle端(我对此表示怀疑)还是来自SAS端(但有什么变化?) 谢谢你的帮助,我希望我已经给你提供了足够的信息
问题内容: 我有一张带有Clob列的表。需要执行基于Clob列内容的搜索。然而 失败但 似乎很好。oracle如何处理Clob列上的过滤。它仅支持’like’子句,不支持=,!=等。是否与其他数据库(如mysql,postgres等)相同 另外,在像Hibernate这样的实现JPA的框架中如何处理这种情况? 问题答案: 是的,这是不允许的(此限制不影响S IN PL / SQL比较)采用比较运营
我知道我可以添加函数/存储proc来完成这项工作。性能方面非常重要,所以我问是否有一种方法可以通过直接将数据推入CLOB来克服32K的限制。