Oracle length()函数返回不正确的值

And*_*ong 2 sql oracle

我刚发现了一些......我不知道我叫它的是什么,但是这里有:

SELECT part_num, 
       length(trim(part_num)) 
  FROM part_programs 
 WHERE rownum <= 10;
Run Code Online (Sandbox Code Playgroud)

...结果:

PART_NUM        LENGTH(TRIM(PART_NUM))
--------------- ----------------------
THAB256         8
THA1256674      11
THA1256674GU    13
THA1257141      11
THA1257141FR    13
THA1257141FR1   14
THA1257141TD    13
THA2002013      11
THA2002013MI    13
THA2002013MI1   14
Run Code Online (Sandbox Code Playgroud)

来自length()调用的返回整数实际上返回值的1 + realLength.

我不知道从哪里开始,有人想照亮光明吗?

Pau*_*ulJ 5

尝试使用内置的DUMP功能查看字段的详细信息

SELECT part_num,
       length(trim(part_num)),
       dump( trim( part_num ) )
  FROM part_programs  
 WHERE rownum <= 10;
Run Code Online (Sandbox Code Playgroud)

这将返回数据

Typ=96 Len=6: 79,114,97,99,108,101
Run Code Online (Sandbox Code Playgroud)

从这个查询

SELECT dump( 'Oracle' ) from dual
Run Code Online (Sandbox Code Playgroud)