一、从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;