天天看點

oracle資料庫中chr,Oracle 學習之:ASCII,CHR函數的作用和用法

對于ASCII以及CHR函數的用法,Oracle給出的解釋是:

ASCII(x)gets the ASCII value of the character X, CHR() and ASCII() have the opposite effect.

即:ASCII函數是用于将字元轉換成其相應的ASCII碼,而CHR函數作用則恰好相反;

下面我來看一些簡單的例子:

SELECT ASCII('x'), ASCII('y'),ASCII('z') from dual;

語句執行的結果為 120,121,122(即字元x,y,z對應的ASCII碼分别為120,121,122)。那麼SELECT CHR('120'), CHR('121'),CHR('122') from dual;的結果我們應該很容易知道。

上面我們的例子中都是單個字元,那麼如果是多個字元會有什麼結果呢?SELECT ASCII('xy') from dual;結果為120;SELECT ASCII('x') from dual;結果為120。從這兩個例子中可能我們已經看出了什麼。

"ASCII gives the ascii value of the first character of  a string"即:ASCII函數隻對你給出的字元串中的第一個字元起作用;

最後我們再介紹幾個常用的chr()函數,chr(9);chr(10);chr(13);chr(32);chr(34),其中chr(9)是tab,chr(10)是換行符,chr(13)是回車符,chr(32)是空格符,chr(34)是雙引号“"”。

可能有人會對回車和換行有些分不清,因為平常這兩個符号是合在一起使用的。回車即回到行首,換行即換到下一行。那我們在oracle中用chr(13)和chr(10)會有差別嗎?(結果沒有差別,因為現在的語言會自動把它們轉成“回車換行”)。即

declare

begin

dbms_output.put_line('huiche');

dbms_output.put_line(chr(10));

dbms_output.put_line('hhh');

end;

declare

begin

dbms_output.put_line('huiche');

dbms_output.put_line(chr(13));

dbms_output.put_line('hhh');

end;

兩個塊輸出的結果是完全一樣的。

oracle資料庫中chr,Oracle 學習之:ASCII,CHR函數的作用和用法