• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • Java>
  • 正文
  • 达梦数据库查询用map接收 text字段会被转成clod字段

    2023年05月15日 1.6 k 阅读 0 评论 3499 字

    达梦数据库中,text类型字段会自动转换为cloud类型字段。因此,当您使用map接收text类型字段时,达梦数据库会将该字段的数据类型转换为cloud类型,导致数据类型错误。如果您需要在map中接收text类型字段,请将该字段的数据类型在查询语句中指定为text类型。例如,假设您的查询语句为SELECT name, CAST(content AS TEXT) FROM table_name,其中content是text类型字段,您可以使用CAST函数将其转换为text类型,然后在map中接收。

    达梦数据库中的text类型是一种LOB(Large Object),用于存储大量的文本数据。而clob也是一种LOB类型,用于存储字符型数据。在达梦数据库中,text类型字段会被自动转换为clob类型,因为它们都属于LOB类型,并且具有相似的特性。这种转换可能会发生在查询、插入、更新等操作中,如果您需要明确使用text类型,建议在SQL语句中显式地指定该字段为text类型,以避免数据类型错误。

       Map<String, Object> entity = this.genericMapper.getRecordMapById(formTable, recordId);
     while(var3.hasNext()) {
                                                String key = (String)var3.next();
                                                if (itemx.get(key) instanceof ClobProxyImpl) {
                                                    ClobProxyImpl clobProxy = (ClobProxyImpl)itemx.get(key);
                                                    itemx.put(key, OracleUtils.clobToString(clobProxy));
                                                } else if (itemx.get(key) instanceof Blob) {
                                                    Blob blob = (Blob)itemx.get(key);
                                                    itemx.put(key, OracleUtils.blobToString(blob));
                                                }
                                            }
    package com.jinw.utils;
    
    import com.alibaba.druid.proxy.jdbc.ClobProxyImpl;
    
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    /**
     * @ClassName OracleUtils
     * @Description 一句话描述类的作用
     * @Author liux
     * @Date 2021/12/22 16:22
     **/
    public class OracleUtils {
        public static String clobToString(ClobProxyImpl clobProxy) throws SQLException {
            String subString = clobProxy.getSubString(1, (int) clobProxy.length());
            return subString;
        }
    
        public static String blobToString(Blob blob) throws Exception {
            String newStr = "";
            int blobLength = (int) blob.length();
            byte[] bytes = blob.getBytes(1, blobLength);
            if(bytes == null || blobLength == 0){
                return "";
            }else {
                int i = 1;
                while(i < blobLength){
                    bytes = blob.getBytes(i,1024);
                    i = i + 1024;
                    newStr = newStr + new String(bytes,"UTF-8");
                }
            }
            return newStr;
        }
    }
    
    package com.jinw.utils;
    
    import com.alibaba.druid.proxy.jdbc.ClobProxyImpl;
    
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    /**
     * @ClassName OracleUtils
     * @Description 一句话描述类的作用
     * @Author liux
     * @Date 2021/12/22 16:22
     **/
    public class OracleUtils {
        public static String clobToString(ClobProxyImpl clobProxy) throws SQLException {
            String subString = clobProxy.getSubString(1, (int) clobProxy.length());
            return subString;
        }
    
        public static String blobToString(Blob blob) throws Exception {
            String newStr = "";
            int blobLength = (int) blob.length();
            byte[] bytes = blob.getBytes(1, blobLength);
            if(bytes == null || blobLength == 0){
                return "";
            }else {
                int i = 1;
                while(i < blobLength){
                    bytes = blob.getBytes(i,1024);
                    i = i + 1024;
                    newStr = newStr + new String(bytes,"UTF-8");
                }
            }
            return newStr;
        }
    }
    
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.016 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。