【Oracle/clob】在Sqlplus中借助dbms_lob.substr()显示clob字段中的长文本
在SqlPlus中显示clob字段时,如果其内容稍长便会截取前面一小段显示,稍有不便;
若借助dbms_lob.substr()函数,长文本便可一览无余,颇为方便;
以下SQL对比很明显:
SQL> select * from emp0520; -- 直接显示只出现前一小段 ID ---------- CONTENT -------------------------------------------------------------------------------- 1 莫虚青山多障碍,风牙嘎风牙ging; 把丸过山峰牙活群情,莫虚水中多宾碗; 水牙清水 SQL> select dbms_lob.substr(content) from emp0520 where id=1; --用了dbms_lob.substr后便一览无余 DBMS_LOB.SUBSTR(CONTENT) -------------------------------------------------------------------------------- 莫虚青山多障碍,风牙嘎风牙ging; 把丸过山峰牙活群情,莫虚水中多宾碗; 水牙清水牙静,窑情启水爱共wing; 梅怕弓风吹散流倚爱,漫水亲山总系情; 醉散牙瑶听居定,八云听八云命; 但靠瑶山水弓作京。 DBMS_LOB.SUBSTR(CONTENT) -------------------------------------------------------------------------------- 莫虚青山多障碍,风牙嘎风牙ging; 把丸过山峰牙活群情,莫虚水中多宾碗; 水牙清水牙静,窑情启水爱共wing; 歌曲:万水千山总是情 歌手:汪明荃 莫说青山多障碍 (莫虚青山多障碍) DBMS_LOB.SUBSTR(CONTENT) -------------------------------------------------------------------------------- 风也急风也劲 (风牙嘎风牙ging) 白云过山峰也可传情 (把丸过山峰牙活群情) 莫说水中多变幻 (莫虚水中多宾碗) 水也清水也静 (水牙清水牙静) 柔情似水爱共永 (窑情启水爱共wing) DBMS_LOB.SUBSTR(CONTENT) -------------------------------------------------------------------------------- 未怕罡风吹散了热爱 (梅怕弓风吹散流倚爱) 万水千山总是情 (漫水亲山总系情) 聚散也有天注定 (醉散牙瑶听居定) 不怨天不怨命 (八云听八云命) SQL>
主题讲完了,下面附上给这个字段充值的程序:
package com.hy.lab.clob; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.sql.*; public class ClobWriter { public static Connection getConnection() { Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "luna"; String pass = "1234"; conn = DriverManager.getConnection(url, user, pass); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static String readFromFile(String path) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8")); String line = null; StringBuilder sb=new StringBuilder(); while( ( line = br.readLine() ) != null ) { sb.append(line+"\n"); } br.close(); return sb.toString(); } public static void main(String[] args){ String insertSql="insert into emp0520(id,content) values(?,?)"; try(Connection conn =getConnection(); PreparedStatement pstmt =conn.prepareStatement(insertSql);){ conn.setAutoCommit(false); pstmt.setInt(1,1); Clob clob=conn.createClob(); clob.setString(1,readFromFile("c:\\hy\\daily\\220520.txt")); pstmt.setClob(2,clob); pstmt.addBatch(); pstmt.executeBatch(); conn.commit(); System.out.println("完成写入"); }catch(Exception e){ e.printStackTrace(); } } }
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-05-20 利用ANSI转义序列在控制台输出彩色文字
2018-05-20 【高中数学/指数函数】比较a=0.6^0.9 b=0.6^1.5 c=1.5^0.6的大小