原始数组长度

时间:2015-05-21 08:27:17

标签: plsql oracle10g

我有以下代码:

set serveroutput on
declare
  datos                     raw(100);
begin
  dbms_output.put_line('The raw variable has a length of '||length(datos));
end;
/

为什么不起作用?它应该给我长度为100。

1 个答案:

答案 0 :(得分:1)

以下

4

将返回

CREATE OR REPLACE FUNCTION fn_avl_spc(raw_val IN RAW)    
IS    
avl_spc NUMBER(100);    
BEGIN    
avl_spc := 100 - utl_raw.length(raw_val);  
RETURN avl_spc;  
END;   

由于您没有为其指定任何值,因此长度仍为空。声明变量,确定变量的最大限制。但是,在为其分配值之前,它占用的内存为零。

更新

计算变量的剩余空间:

dbms_output.Put_line('The raw variable has a lenght of ' 
                         ||fn_avl_spc(datos));

然后你可以按如下方式重写你的行:

org.apache.lucene.search.Query query1 = ....;
org.apache.lucene.search.Query query2 = ....;
org.apache.lucene.search.Query query3 = ....;

BooleanQuery booleanQuery = new BooleanQuery();

luceneBooleanQuery.add(query1, BooleanClause.Occur.MUST);
luceneBooleanQuery.add(query2, BooleanClause.Occur.SHOULD);
luceneBooleanQuery.add(query3, BooleanClause.Occur.SHOULD); 

FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(booleanQuery, DomainClass.class);

当然,您可以将功能提高到更灵活,并返回任意长度的任何数据类型的可用空间