是否有办法找出Oracle SQL查询中特定字段值(可能长于4000个字符)所使用的字节数?
dbms_lob.getLength()
返回的字符数不是字节,我不能只进行直接乘法,因为此字符集中每个字符的字节数可变。简单地想知道如何使用dbms_lob.converttoblob()
,但这似乎需要PL / SQL,我需要在一个查询中直接执行此操作。
答案 0 :(得分:1)
使用Oracle函数LENGTHB()
获取此结果。
有一种方法可以使用DBMS_LOB.CONVERTTOBLOB
并使用DBMS_LOB.GETLENGTH()
将CLOB转换为BLOB。这将返回no字节。
答案 1 :(得分:1)
由于我还没有收到满意的答案,我现在正在使用dbms_lob.getlength()
来获取字符数,然后乘以2.这是基于这里有关AL32UTF8字符集的注释:
https://forums.oracle.com/forums/thread.jspa?threadID=2133623
几乎所有字符都需要2个字节的存储空间 需要4个字节存储空间的特殊字符。
没有证实这是多么真实,但是这个人听起来就像他们知道他们在谈论什么,所以我现在正在使用它作为“最佳猜测”。