【差異】LENGTH與VSIZE的區別演示
簡單看一下這兩個函式。
1.建立表T並初始化三條資料
sec@ora10g> create table t (x varchar2(10));
sec@ora10g> insert into t values ('H');
sec@ora10g> insert into t values ('侯');
sec@ora10g> insert into t values ('H侯');
sec@ora10g> commit;
2.檢視錶T中的資料
sec@ora10g> select * from t;
X
----------
H
侯
H侯
3.比較LENGTH和VSIZE兩個函式的結果
sec@ora10g> col x for a10
sec@ora10g> col DUMP(X) for a30
sec@ora10g> select x, length(x), vsize(x), dump (x) from t;
X LENGTH(X) VSIZE(X) DUMP(X)
---------- ---------- ---------- ------------------------------
H 1 1 Typ=1 Len=1: 72
侯 1 3 Typ=1 Len=3: 228,190,175
H侯 2 4 Typ=1 Len=4: 72,228,190,175
4.結論
“H”包含1個字元,長度是1 byte;
“侯”包含1個字元,長度是3 bytes;
“H侯”包含2個字元,長度是4 bytes。
5.擴充套件
LENGTH的一個擴充套件函式LENGTHB也可以達到VSIZE函式的效果。
sec@ora10g> select x, length(x), lengthb(x), vsize(x), dump (x) from t;
X LENGTH(X) LENGTHB(X) VSIZE(X) DUMP(X)
---------- ---------- ---------- ---------- ------------------------------
H 1 1 1 Typ=1 Len=1: 72
侯 1 3 3 Typ=1 Len=3: 228,190,175
H侯 2 4 4 Typ=1 Len=4: 72,228,190,175
6.Oracle官方文件參考
參考連結:
LENGTH
Syntax
length::=
Purpose
The LENGTH functions return the length of char. LENGTH calculates length using characters as defined by the input character set. LENGTHB uses bytes instead of characters. LENGTHCLENGTH2 uses UCS2 code points. LENGTH4 uses UCS4 code points. uses Unicode complete characters.
char can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The return value is of datatype NUMBER. If char has datatype CHAR, then the length includes all trailing blanks. If char is null, then this function returns null.
Restriction on LENGTHB The LENGTHB function is supported for single-byte LOBs only. It cannot be used with CLOB and NCLOB data in a multibyte character set.
參考連結:
VSIZE
Syntax
Purpose
VSIZE returns the number of bytes in the internal representation of expr. If expr is null, then this function returns null.
This function does not support CLOB data directly. However, CLOBs can be passed in as arguments through implicit data conversion.
Oracle提供了很多便捷的函式為我們所用,不過在使用之前需要認真的瞭解他們的功能,以免誤用。
關於更多Oracle提供的函式說明可以參考Oracle的官方文件:
Good luck.
secooler
09.12.24
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-623537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java字串“==”與“equals”的差異及與c#的區別Java字串C#
- Java中 length、length()、size()區別Java
- 完全備份、差異備份、增量備份的區別
- java中size()和length區別Java
- module.exports、exports 、export default之間的差異區別及與require、import的使用ExportUIImport
- 一圖看懂三星Note7與Note5差異區別
- PostgreSQL與Oracle的sql差異SQLOracle
- 【譯】框架與庫的差異框架
- 從Function.length 與 Argument.length 區別談到如何傳遞任意個數引數Function
- 奇異矩陣與非奇異矩陣的定義與區別矩陣
- 事件關鍵詞 bind 和 catch 的區別、事件物件 target 和 currentTarget 的差異事件物件
- typeof、instanceof與isPrototypeOf()的差異與聯絡
- FUNCTION : vsizeFunction
- Python指令碼和網頁有什麼區別?差異介紹!Python指令碼網頁
- 異或運算完成數的交換, a++與++a的區別
- java與php區別或異同(整理、整合)JavaPHP
- 軟體測試:SVN與Git的差異Git
- 反向代理與正向代理差異分析
- 子查詢與join效能差異
- Scala與Java差異(五)之Map與TupleJava
- PHP中new static()與new self()的區別異同分析PHP
- Nielsen:智慧手機在印度,典型的性別差異
- 淺析Java語言中兩種異常的差別Java
- openGauss資料與PostgreSQL的差異對比SQL
- 神經網路學習筆記(4)——期望與算術平均值的區別、方差與均方誤差的區別神經網路筆記
- Python 與 JavaScript 語法差異點PythonJavaScript
- Scala與Java差異(三)之函式Java函式
- ORACLE與MYSQL程式碼開發差異OracleMySql
- resin與jetty解析el表示式差異Jetty
- 異常處理機制(一)之throw與throws的區別
- ERP差異來源和差異處理
- ??與?:的區別
- JavaScript函式和方法區別演示程式碼JavaScript函式
- ruby 怪異的while迴圈處理,和java的差別WhileJava
- 差異化與中心化,QQ小遊戲的機遇中心化遊戲
- 【譯】 React官方:函式元件與類元件的差異 ?React函式元件
- ES6模組與commonJS模組的差異JS
- 資料專案與erp專案的差異