一、從oraclelong轉字符串
OracleLong字段是為了保存長度大於2000字節的字符而設立的一種數據類型。在數據庫表中存儲的時候,OracleLong類型的字符是作為單獨的數據記錄存儲的,而不是和其他字段一起存儲。因此在查詢OracleLong字段的時候,需要用一些特殊的方法來將它轉換成字符串。
考慮下面這個行數據表,其中ORACLE_LONG字段是OracleLong類型:
CREATE TABLE EXAMPLE_TABLE ( ID NUMBER(10), NAME VARCHAR2(200), OS VARCHAR2(100), ORACLE_LONG LONG );
以下是將OracleLong類型字段轉換成字符串的代碼:
ResultSet rs = stmt.executeQuery("SELECT ORACLE_LONG FROM EXAMPLE_TABLE WHERE ID = 1"); String longString = ""; if(rs.next()) { Clob clob = rs.getClob(1); Reader reader = clob.getCharacterStream(); char[] buffer = new char[1024]; int len = 0; while((len = reader.read(buffer)) != -1){ longString += new String(buffer,0,len); } reader.close(); clob.free(); }
首先查詢數據表中的ORACLE_LONG字段,使用getClob方法將Clob類型轉換成Reader類型,設置buffer讀取長度,遍歷輸出內容,最後將Reader和Clob資源釋放。
二、Oracle轉換字符串函數
在Oracle數據庫中,提供了許多將日期類型轉換為字符串的函數,例如TO_CHAR函數:SELECT TO_CHAR(SYSDATE, ‘YYYY/MM/DD’) FROM DUAL;
以下是將日期類型轉換為字符串的一些常用函數:
- TO_CHAR(date, ‘format’) 將日期類型轉換為字符串。YMD、YYYY-MM-DD HH24:MI:SS等是日期格式的參數,可以自定義。
- TO_DATE(string, ‘format’) 將字符串類型轉換為日期類型。‘YYYY-MM-DD HH24:MI:SS’等是日期格式的參數,可以自定義。
以下是示例代碼:
PSQL> SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL; 2003-01-30
三、Oracle字符串轉換為數字
將字符串類型的數字轉換為數字類型,可以使用TO_NUMBER函數:
SELECT TO_NUMBER('123.45', '999.99') FROM DUAL; 123.45
四、Oracle中字符串轉數字
將字符串類型的數字轉換為數字類型,可以使用CAST函數或者CONVERT函數:
SELECT CAST('1234.56' AS NUMBER) FROM DUAL; SELECT CONVERT(NUMBER,'1234.56') FROM DUAL;
五、Oracle字符串轉時間
將時間類型的字符串轉換為時間類型,可以使用TO_DATE函數:
SELECT TO_DATE('2003-01-30', 'yyyy-mm-dd') FROM DUAL; 30-JAN-03
六、Oracle字符串分列
在查詢數據表的時候,有時候需要將字符串類型的字段進行分列,可以使用REGEXP_SUBSTR函數將指定字符串解析為子字段。
SELECT REGEXP_SUBSTR('My full name is Mr. John Smith', '[^ ]+', 1, 2) as SECOND_WORD FROM DUAL;
輸出結果為:
SECOND_WORD ------------- full
七、Oracle字符串轉義
在使用字符串的時候,有時候需要對特殊字符進行轉義,否則在查詢或者插入數據的時候會出現錯誤。在Oracle中,可以使用REPLACE函數對轉義字符進行替換。
REPLACE(string, ' ', '_')
以上示例代碼將所有空格替換為下劃線。
八、Oracle字符串連接
在查詢數據表的時候,有時候需要將多個字段連接成一個字符串進行查詢,可以使用CONCAT函數或者’||’符號進行字符串連接。
SELECT CONCAT(FIRST_NAME, ' ', LAST_NAME) FROM EMPLOYEE; SELECT FIRST_NAME||' '||LAST_NAME FROM EMPLOYEE;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/302002.html