2012-11-27 21 views
3

我目前想知道是否有方法來查找SQL查詢中特定字段值(可能不超過4000個字符)使用的字節數。如何使用Oracle中的AL32UTF字符集來確定CLOB的長度(以字節爲單位)?

dbms_lob.getLength()返回的字符數不是字節,我不能直接乘數,因爲這個字符集中每個字符有可變的字節數。簡單地想知道如何使用dbms_lob.converttoblob(),但這似乎需要PL/SQL,我需要直接在單個查詢中執行此操作。

現在難倒了!任何幫助太多appeciated ...

回答

0

更新:由於我還沒有收到滿意的答案,我目前正在訴諸於使用dbms_lob.getlength()來獲取字符數,然後乘以2.這是基於這裏有關AL32UTF8的評論字符集:

https://forums.oracle.com/forums/thread.jspa?threadID=2133623

「幾乎所有的字符需要2個字節存儲的與需要4個字節存儲的特殊字符了一把。」

還沒有證實這是多麼真實,但人聽起來像他們知道他們在說什麼,所以我目前使用它作爲「最佳猜測」。

1

使用Oracle函數LENGTHB()得到這個結果。 通過使用DBMS_LOB.CONVERTTOBLOB並使用DBMS_LOB.GETLENGTH()可以將CLOB轉換爲BLOB。這將返回字節數。

+0

感謝Alvaro與格式化的答案:) –

+1

嗨,感謝您的答覆,但不幸的是,長度似乎不工作在CLOBs ... –

+0

...並修復函數名稱中的錯字;-) –

相關問題