编解码函数

本文介绍了编解码函数的语法、参数以及示例等内容。

VSIZE

描述

该函数返回expr内部表示形式中的字节数。如果exprNULL,则此函数返回NULL

说明

此函数不直接支持CLOB数据。但是,CLOB可以通过隐式数据转换作为参数传入。

语法

VSIZE(expr)

参数

参数

说明

expr

可以为字符数据类型或者数值数据类型。

返回类型

如果 expr为 NULL,则函数返回 NULL,否则返回一个 NUMBER类型的值。

示例

SELECT VSIZE('0xffffffffffffffff'::xid8) FROM DUAL;
 vsize 
-------
     8

ORA_HASH

描述

该函数是一个为给定表达式计算哈希值的函数。此函数适用于分析数据子集和生成随机样本等操作。

语法

ORA_HASH(expr [, max_bucket [, seed_value ]])

参数

参数

说明

expr

通常为数据库表的列名,数据类型可以是数值类型、XML类型、字符类型、日期时间类型或 RAW类型等。

max_bucket

可选项,确定哈希函数返回的最大桶值。取值范围为 [0, 4294967295],默认值是4294967295

seed_value

可选项,使数据库能够为同一组数据生成不同的结果。取值范围为 [0, 4294967295],默认值为0

返回类型

返回NUMBER类型数据。

示例

create table t(
	xml xmltype,
	dp double precision,
	id rowid,
	si smallint,
	i integer,
	bi bigint,
	dec decimal,
	num number,
	r real,
	m money,
	c char(4),
	vc varchar,
	vc1 clob,
	te text,
	ts timestamp,
	da date,
	byt bytea,
	blc blob,
	ble blob,
	b bool);
insert into t values('xml',1,1,1,1,1,1,1,1,1,'a','abc','历史','abc','2004-10-19 10:23:54','2004-10-19', 'DEADBEEF', cast(repeat('a', 5120) as bytea), cast(repeat('a', 5120) as bytea), true);
select ora_hash(xml) from t;
 ora_hash 
----------
 22411469

select ora_hash(id) from t;
  ora_hash  
------------
 2389907270

DUMP

描述

该函数返回一个VARCHAR2值,该值包含数据类型代码、字节长度和expr的内部表示形式。返回的结果总是在数据库字符集中。

语法

DUMP(expr[, return_fmt [, start_position [, length ] ] ])

参数

参数

说明

expr

指定进行分析的表达式,可以是各个类型的值。

return_fmt

指定返回值的格式,为可选参数。取值如下:

  • 8:表示以八进制返回结果的值。

  • 10:表示以十进制返回结果的值,为默认值。

  • 16:表示以十六进制返回结果的值。

  • 17:表示以单字符的形式返回结果的值,能被解释为编译器字符集中的可打印字符,通常是ASCII字符集或EBCDIC字符编码。否则,字符以十六进制表示法打印。所有NLS参数都将被忽略。

start_position

指定开始进行返回的字符位置,为可选参数。默认值是 1。

length

可选参数,指定需要返回的字符长度,默认返回全部字符。

返回类型

如果exprNULL,则返回NULL,否则,返回VARCHAR2类型数据。

示例

select dump(123, 16, 0) FROM DUAL;
          dump          
------------------------
 Typ=23 Len=4: 7b,0,0,0