Oracle-ORA-01461:can bind a LONG value only for insert into a LONG column解决办法之二!

2023-05-16

ORA-01461解决办法

  • 问题
  • 场景1:sql中使用from dual
    • 分析
    • 解决
  • 场景2:字符串超长
    • 解决

问题

在客户现场执行写入逻辑时遇到异常

ORA-01461:can bind a LONG value only for insert into a LONG column

场景1:sql中使用from dual

出问题的sql如下:

insert into ttt(id, text)
        select SEQ_TTT.nextval, t.*
        from (
        <foreach collection="lists" item="item" separator="union all">
            select #{item.text}
            from dual
        </foreach>
        ) t;

分析

text字段是Clob类型

当从dual中取数据时,会将Clob对象的字段转为Long型,于是就有了can bind a LONG value only for insert into a LONG column这个报错

解决

修改sql如下:

		begin
        <foreach collection="lists" item="item">
           insert into ttt(id, text)values (
            SEQ_TTT.nextval,#{item.text}
            );
        </foreach>
        end;

场景2:字符串超长

首先说一下本例Oracle中该字段类型是nvarchar2(2000),什么意思呢?

重点说明:该字段不管存储中文还是英文,都能存入2000个字符,并且每个字符占2字节,即该字段最大存入字节数4000。

解决

在业务代码中,限制该字段最大字节数<=4000,即如果该字段字节数大于4000了,就截取<=4000字节数的最大字符串。方法如下:

	/**
     * 字符串限制截取
     *
     * @param str   待处理字符串
     * @param limit 限制字节数
     * @return 最大字节数以内的最长字符串
     */
    public static String subString(String str, int limit) {
        if (str == null) {
            return "";
        }
        int length = 0;
        StringBuilder stringBuilder = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (length + String.valueOf(c).getBytes().length <= limit) {
                stringBuilder.append(c);
                length += String.valueOf(c).getBytes().length;
            } else {
                break;
            }
        }
        return stringBuilder.toString();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle-ORA-01461:can bind a LONG value only for insert into a LONG column解决办法之二! 的相关文章

  • mapreduce 班级学生成绩统计

    这个是最近的一个实验 xff0c 其中这个实验老师的要求是 1 统计每个班成绩的最大值 最小值 并且输出姓名 如果有多个那么要都要输出 xff0c 然后输出每个班的平均值 再者就是每个班的成绩分布 xff0c 优秀良好 xff0c 及格不及
  • 解决修改css或js文件后,浏览器缓存未更新问题

    问题描述 xff1a 最近在上线新版本项目的时候 xff0c 发现有的用户的操作还是调用的老版本JS里面的内容 xff0c 这样就造成原来新的JS里面加上的限制不能限制用户的操作 xff0c 从而导致用户可以重复操作 问题产生原因 xff1
  • 最全UnityHub国际版下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】

    Unity2022 2017各版本UnityHub国际版下载链接 间歇性更新 直链下载国际版UnityHub国际版下载链接Unity2022 xUnity2021 xUnity2020 xUnity2019 xUnity2018 xUnit
  • FreeRTOS教程——任务(一)

    文章目录 FreeRTOS教程 任务 xff08 一 xff09 概述任务状态任务优先级执行任务 单元xTaskCreatevTaskDeletevTaskDelayvTaskSuspendvTaskResume 综合实例 FreeRTOS
  • Maven的下载安装配置教程(详细图文)

    目录 一 简单了解一下什么是Maven 二 maven的下载 三 maven的安装 四 maven的环境变量配置 五 setting文件配置 六 开发工具配置Maven 一 简单了解一下什么是Maven Maven就是一款帮助程序员构建项目
  • ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程

    环境 xff1a OS X 10 10 5 43 JDK 1 8 步骤 xff1a 一 下载ELK的三大组件 E lasticsearch下载地址 xff1a https www elastic co downloads elasticse
  • 实时更新的Sci-Hub可用网址

    近期 xff0c Sci Hub似乎用起来又不流畅了 xff0c 有时候打开贼费劲 xff0c 而且有些网址又用不了 xff01 接下来给大家推荐一个网站 xff0c 他们会实时新Sci Hub网址 xff0c 大家可以去试试 xff01
  • RFC8314文档中对465端口和587端口的阐述

    最近在学习SMTP的时候发现SMTP在使用加密传输的时候涉及到465和587两个端口 xff0c 网上对两者之间的区别众说纷纭 xff0c 后来查到了RFC官方文档中对于这个争论较久的问题的定义和详细说明 xff0c 这里做转载和翻译用于记
  • nginx篇08-添加客户端证书认证

    本文主要介绍如何使用给nginx服务添加客户端证书认证从而实现双向加密 对于一般的https网站来说 xff0c 实际上https所使用的证书是属于单向验证 xff0c 即客户端单向验证服务器的安全性 xff0c 而服务器端是没有对客户端的
  • Linux 查找搜索命令 5种方式

    一 whereis命令 该指令会在特定目录中查找符合条件的文件 这些文件应属于原始代码 二进制文件 xff0c 或是帮助文件 该指令只能用于查找二进制文件 源代码文件和man手册页 xff0c 一般文件的定位需使用locate命令 简单理解
  • SUMO学习

    SUMO学习 SUMO简介1 车道模型2 跟驰模型跟驰模型CACC 3 变道模型1 Strategic change 战略变道2 Cooperative change 协同变道3 Tactical change 战术变道4 Obligato
  • 51单片机学习笔记4 -- 蜂鸣器控制

    蜂鸣器控制 1 蜂鸣器简介1 分类2 有源蜂鸣器和无源蜂鸣器3 区分有源蜂鸣器和无源蜂鸣器4 蜂鸣器驱动电路 2 电路图绘制3 蜂鸣器控制4 程序补充 1 蜂鸣器简介 蜂鸣器是一种一体化结构的电子讯响器 xff0c 采用直流电压供电 xff
  • 树莓派3B+安装系统,配置基本环境、更换国内镜像源,适用pi4

    树莓派3B 43 安装系统 系统镜像下载 树莓派官方镜像下载地址 xff1a 自行百度 xff0c 官方网站首页 xff0c 点击Downloads 安装镜像 准备一张8G以上的内存卡 xff0c 推荐16G以上 下载系统制作软件etche
  • Linux超强截图工具flameshot

    Pop OS自带的截屏快捷键如下 但讲道理这个是真的不好用 所以我们借助第三方的截图工具 xff0c 这里推荐flameshot 火焰截图 在终端键入以下命令即可安装 span class token function sudo span
  • 5/1-3 BP神经网络的改进及MATLAB实现(下)

    5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 文章目录 5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 1 自适应梯度下降法 xff08 Adagrad xff09 2 动量法
  • “操作无法完成因为其中的文件夹或文件已在另一个程序中打开”解决办法

    在windows系统中 xff0c 我们经常会遇到这样一个问题 xff1a 删除某一个文件或者文件夹 xff0c 被提醒 xff1a 操作无法完成 xff0c 因为其中的文件夹或文件已在另一个程序中打开 这个时候我们一般会先检查是否真的有程
  • windows下N卡提取或者刷VBIOS

    windows下N卡提取或者刷VBIOS 这里是简介 xff1a 在windows下怎么提取出显卡的VBIOS和刷VBIOS引用 本文已 GeForce MX450显卡为例 xff0c 需要借助工具 lt 1 gt 工具介绍 xff08 N
  • 论文:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey翻译工作

    关于对抗性攻击对深度学习威胁的研究 Naveed Akhtar and Ajmal Mian ACKNOWLEDGEMENTS The authors thank Nicholas Carlini UC Berkeley and Dimit
  • 802.1x认证方式(EAP中继认证与EAP终结认证)

    文章目录 1 前言2 协议说明3 报文分析EAP中继模式 MD5 challengeEAP终结模式 MD5 challengeRadius CHAP认证原理Message Authenticator消息验证器计算参考连接 xff1a 1 前
  • ubuntu 换源深层次解析

    换源也是一个容易出错的问题 xff0c 本文以树莓派为例展开 xff0c x86也是一样的操作 那么假设成立的话 xff0c 就要记住我们是在树莓派 xff08 arm xff09 上安装的ubuntu xff0c 不是X86 xff0c

随机推荐