• 【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

  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/heyang78/p/16290989.html
Copyright © 2020-2023  润新知