[Oracle] 修改字符串最大长度解决 ORA-12899: value too large for column

2023-10-27

问题分析

出现这个问题的原因是, 某列中包含的数据长度超出了建表时对该列的限制, 一般情况下修改出错列的长度设置, 然后重新建表即可. 不过有时问题会更复杂一些, 存储字符串常用的 VARCHAR2 类型的默认长度上限是 4000 bytes, 如果要存储的数据中包含超过 4000 bytes 的数据该如何解决?

问题解决

遇到 VARCHAR2 类型长度不够用的情况时, 可以考虑两种方案:

  1. 改用其它数据类型
    如改为 LONG 或者 CLOB, 这两种数据类型可以存储 GB 级别的字符串, 但也有各自的局限, LONG 类型在一张表中只能出现一次, CLOB 在读取时比较麻烦
  2. 修改 VARCHAR2 数据类型的上限
    根据官网的说明, VARCHAR2 的上限可以改为 32767 bytes, 下面给出 Non-CDB 型数据库的详细设置流程, CDB 型数据库的设置后面研究一下再补充, 参考官网教程
sudo su oracle       // 切换为 Oracle 用户
sqlplus / as sysdba  // 连接 sqlplus
shutdown immediate;  // 关闭数据库
startup upgrade;     // 以 upgrade 模式开启数据库
alter system set max_string_size=extended scope=spfile;  // 修改字符串最大长度
@?/rdbms/admin/utl32k.sql;  // 执行 utl32k.sql
shutdown immediate;  // 关闭数据库
startup;             // 以正常模式开启数据库
create table "TEST"("ID" varchar2(32727));  // 建表测试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Oracle] 修改字符串最大长度解决 ORA-12899: value too large for column 的相关文章

  • 通过一个表中的列更新另一表中的列

    我有两张桌子 A 和 B 两者都有一个共同的列 name 并通过列 id 相互链接 表A中的 name 列是空的 而表B中有数据 我的任务是用相应的id填充从表B到表A的该列中的所有数据 我正在使用以下查询 UPDATE A SET A n
  • Oracle group by 中的字符串聚合

    我已经形成了一个大型查询 它使用以下数据条件获取大型数据集 Column1 Column2 M1 OTH M1 HHM M1 RES M2 HHM M2 RES M3 OTH M3 RES 我需要将其形成为 M1 OTH HHM RES M
  • java.sql.SQLException: ORA-01005: 给定的密码为空;登录被拒绝

    我在尝试连接到数据库时遇到以下异常 java sql SQLException ORA 01005 null password given logon denied at oracle jdbc driver T4CTTIoer proce
  • oracle中是否有相当于concat_ws的东西?

    我有大量的列试图聚合在一起 其中大多数都有 NULL 值 我想分隔确实以 出现的值但我在oracle中找不到有效的方法来做到这一点 CONCAT WS 正是我所需要的 因为它不会在 NULL 值之间添加分隔符 但 Oracle 不支持这一点
  • 如何终止正在运行的 SELECT 语句

    如何通过终止会话来停止正在运行的 SELECT 语句 该命令不断根据 SELECT 语句向我提供输出 我想在其间停止它 As you keep getting pages of results I m assuming you starte
  • 将游标中的数据合并为一个

    我有一个存储过程 它多次执行另一个存储过程 我需要联合并返回数据 这是在执行第二个过程后得到的 我可以以某种方式将多个游标中的数据合并到另一个游标中吗 没有临时表或类表数据类型是否可能 编辑 联合的游标计数实际上是 n 其中 n 是 1 2
  • 从 Oracle Varchar2 中查找并删除非 ASCII 字符

    我们目前正在将一个 Oracle 数据库迁移到 UTF8 并且发现一些记录接近 4000 字节 varchar 限制 当我们尝试迁移这些记录时 它们会失败 因为它们包含的字符变成了多字节 UF8 字符 我想要在 PL SQL 中做的是找到这
  • 在 C# 中多次使用单个参数的更好方法

    我刚开始使用准备好的语句从数据库查询数据 并且在实现 C 参数 特别是 OracleParameters 时遇到问题 假设我有以下 SQL string sql select from table1 t1 table2 t2 where t
  • 在Oracle中查找不包含数字数据的行

    我试图在一个非常大的 Oracle 表中找到一些有问题的记录 即使该列是 varchar2 列 也应包含所有数值数据 我需要找到不包含数字数据的记录 当我尝试在此列上调用 to number col name 函数时 它会抛出错误 我想你可
  • 如何修复“Oracle.EntityFrameworkCore 类型中的方法‘get_Info’没有实现”。

    我正在尝试通过 EW 连接到 Oracle DB 论方法OnConfiguring是错误 System TypeLoadException 程序集 Oracle EntityFrameworkCore Version 2 0 19 1 Cu
  • Oracle 删除约束级联等效于 Sql Server

    在Oracle中 删除约束PK SAI我使用语法 ALTER TABLE SAISIE DROP CONSTRAINT PK SAI CASCADE SQL Server 中与此等效的是什么 您正在考虑与实际 DELETE 语句相关的 FO
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 如何计算选择查询的最佳获取大小

    在 JDBC 中 默认获取大小为 10 但我想当我有一百万行时 这不是最佳获取大小 据我所知 获取大小太低会降低性能 但如果获取大小太高也会降低性能 我怎样才能找到最佳尺寸 这对数据库端有影响吗 它会占用大量内存吗 如果您的行很大 请记住
  • SQL 错误:ORA-14006:无效的分区名称

    我正在尝试使用以下 SQL 语句对 Oracle 12C R1 中的现有表进行分区 ALTER TABLE TABLE NAME MODIFY PARTITION BY RANGE DATE COLUMN NAME INTERVAL NUM
  • 将数据从 oracle 移动到 HDFS,处理并从 HDFS 移动到 Teradata

    我的要求是 将数据从 Oracle 移至 HDFS 处理HDFS上的数据 将处理后的数据移至 Teradata 还需要每 15 分钟执行一次整个处理 源数据量可能接近50GB 处理后的数据也可能相同 在网上搜索了很多之后 我发现 PRARO
  • 如何使用 Oracle 移动文本文件

    我有两个问题 1 如何从文件夹中移动文本文件 C Data inbox test txt 目标文件夹 C Data outbox test txt 2 如何获取文件夹中的目录文件列表 C Data inbox 谢谢 Oracle 提供了一个
  • PLSql 返回值

    我再次使用一些 PLSql 我想知道 是否有任何方法可以像选择一样使用以下函数 而不必将其转换为函数或过程 这样我就可以从包含它的脚本中看到代码 代码如下 DECLARE outpt VARCHAR2 1000 flow rI VARCHA
  • Oracle 中的 Json_object 返回 ORA-00907: 缺少右括号

    我正在尝试将 Oracle 表数据转换为 JSON 文件 我有三个数据库 下面的代码在一个数据库中以 JSON 文件形式提供输出 但其他两个数据库抛出ORA 00907 missing right parenthesis error 从语法
  • 执行 `EXECUTE IMMEDIATE ` Oracle 语句出现错误

    我是 Oracle 的新手 当我执行以下语句时 BEGIN EXECUTE IMMEDIATE SELECT FROM DUAL END 我得到错误为 命令中从第 2 行开始出错 立即开始执行 从双选择 结尾 错误报告 ORA 00911

随机推荐

  • 基于springboot开发项目架构之Eureka

    Eureka介绍 Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装 它实现了服务治理的功能 Spring Cloud Eureka提供服务端与客户端 服务端即是Eureka服务注册中心 客户端完成微服务
  • STL容器(持续更新中)

    一 string类 1 构造函数 常用的构造函数如下 构造函数原型 含义 string 默认构造函数 创建一个默认string对象 长度为0 string const string s 拷贝构造函数 用一个string对象初始化另一个str
  • jstree的简单使用例子

    最近使用到了jstree 感觉是一款灵活的 可多项定制的tree插件 我这边使用过程记录下 参考的jstree api网站 以及demo介绍 https www jstree com api jstree api github https
  • china变为glmre

    include
  • OpenDRIVE地图中Geometry线段对应x/y坐标的计算

    OpenDrive地图解析代码可以参考 https github com liuyf5231 opendriveparser 在OpenDRIVE地图的解析和绘制过程中 最关键的一点 在x y坐标系下 利用起点 x y 曲线的相对长度 s坐
  • the vm session was closed before any attempt to power it on

    今天启动VBOX出现这个问题 the vm session was closed before any attempt to power it on 然后在网上搜索了下 没有满意答案 大多建议重新选择以前的VDI文件 我可不想把我辛辛苦苦写
  • Visual Studio 设置默认编码格式为 UTF-8

    1 添加高级保存选项 2 更改编码格式
  • JavaScript创建对象的9种方式

    JavaScript创建对象的九种方式 Object构造函数创建对象 不再赘述 对象字面量 不再赘述 工厂模式 用函数来封装以特定接口创建对象的细节 function createPerson name age job var o new
  • SQLSERVER储存过程批量添加10万条数据

    SQLSERVER批量添加10万条数据 insert into PatInfo PID name sex birthday createDate updateDate ownerID permBits contact memo select
  • Python手册(Machine Learning)--statsmodels(列联表和多重插补)

    列联表和多重插补 Contingency tables 列联表 Independence 独立性 Symmetry and homogeneity 对称性和同质性 A single 2x2 table 单个2x2表 Stratified 2
  • 动态规划 Leetcode 1458 Max Dot Product of Two Subsequences(两个子序列的最大点积)

    题目 给你两个数组 nums1 和 nums2 请你返回 nums1 和 nums2 中两个长度相同的 非空 子序列的最大点积 数组的非空子序列是通过删除原数组中某些元素 可能一个也不删除 后剩余数字组成的序列 但不能改变数字间相对顺序 比
  • 心跳跟随的心形灯(STM32(HAL)+WS2812+MAX30102)

    文章目录 前言 介绍 系统框架 原项目地址 本项目开发开源地址 硬件PCB 软件功能 详细内容 硬件外壳制作 WS2812级联及控制 MAX30102血氧传感器 0 96OLED FreeRTOS 效果视频 总结 前言 在好几年前 我好像就
  • elastic job任务不执行

    1 查zk namespace下的instance 2 查dd quartz线程还在不在 3 查定时任务worker线程是不是卡在io上
  • 北京大学肖臻老师《区块链技术与应用》公开课 笔记目录

    北京大学肖臻老师 区块链技术与应用 公开课学习笔记 分章节进行整理 持续更新中 该系列文章中如有任何侵权内容请及时与我个人联系删除或修改 北京大学肖臻老师 区块链技术与应用 视频链接 点击这里 文章目录 01 课程介绍 点击这里 BTC 0
  • RPC远程服务调用

    1 基本概念 跨网络 跨进程的方法调用 因为客户端和服务端位于网络上不同的地址 要完成一次rpc调用 则需要以下步骤 首先建立网络连接 建立连接后 双方需要按照某种约定的协议进行网络通信 能正常通信后 服务端收到请求后需要以某种方式处理 处
  • 使用RestTemplate 远程调用,传递文件类型参数

    使用RestTemplate 远程调用 传递文件类型参数 类私有属性声明 Value server remoteIpPort private String remoteIpPort Resource private RestTemplate
  • 中国“互联网+”案例100征集活动正式启动

    中国互联网技术联盟做为中国第一互联网 专业服务平台 以 技术驱动跨界连接 合作创新 为使命 积极推动中国企业 互联网 的落地应用 继推出 互联网 系列权威发布 本文下方附录可查阅权威发布的具体内容 之后 中国互联网技术联盟在 国务院推进 互
  • 【数论】矩阵快速幂,递推优化,模板

    目录 一 矩阵快速幂用于优化递推 二 矩阵快速幂的推导 一 矩阵快速幂用于优化递推 矩阵快速幂用于优化递推公式 例如 斐波那契的递推公式为 f 1 1 f 2 1 f n f n 1 f n 2 n gt 3 当我们想要求第1e8项时 直接
  • QT Android wifi自动重连开发

    QT Android wifi自动重连开发 配置安卓wifi操作权限 通过监听QNetworkConfigurationManager信号判断WiFi是否失去连接 Java代码 QT代码 小米平板连接无公网的路由器时 断开后不会自动连接 原
  • [Oracle] 修改字符串最大长度解决 ORA-12899: value too large for column

    问题分析 出现这个问题的原因是 某列中包含的数据长度超出了建表时对该列的限制 一般情况下修改出错列的长度设置 然后重新建表即可 不过有时问题会更复杂一些 存储字符串常用的 VARCHAR2 类型的默认长度上限是 4000 bytes 如果要