`

Oracle字段加char与不加char的重要性

 
阅读更多
今天在A环境一个数据库,触发器在传递一个长度为19位的字符串时,接收长度为36,死活报
属性编号(或索引中的收集元素)违反它的约束条件
后来我把19位改成18位就OK了。可是我另外一个环境B也是19位没问题啊。
第一反应可能是数据库字符集出了问题
一看两边都是UTF8,没啥问题,唯一不同的是其中一个参数
NLS_LENGTH_SEMANTICS
A环境 是 BYTE
B环境 是 CHAR
于是我也把A环境的改成CHAR
依然不支持19位
奇了怪了。
后来仔细一查,发现传递的字段类型是这样的:
A环境  varchar2(20 char)
B环境  varchar2(20)
一个char = 2,即传递19个字符时,长度变成了38,自然放不到36里。
把这个类型长度替换成varchar2(20)
问题搞定。

 

分享到:
评论

相关推荐

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    因此,在使用mybatis框架对Oracle数据库进行查询操作时,需要将char类型字段的值去掉两边空格,以确保查询结果的正确性。方法之一是使用trim()函数来去掉char类型字段的空格。例如,select * from data where trim...

    PowerDesigner字段与Oracle字段对应

    在数据库设计过程中,PowerDesigner 和 Oracle 之间的字段对应关系是至关重要的,因为它直接影响到数据的存储和处理。PowerDesigner 是一款强大的数据建模工具,它允许用户创建概念数据模型(CDM)和物理数据模型...

    oracle字段类型转换的处理

    本文将深入探讨Oracle字段类型的转换方法,并提供一个实用的工具示例。 Oracle数据库支持多种数据类型,包括数值类型(如NUMBER、INTEGER、BINARY_FLOAT等)、字符类型(如VARCHAR2、CHAR、CLOB等)、日期时间类型...

    浅析Oracle中char和varchar2的区别 电脑资料.docx

    Oracle 中 char 和 varchar2 的区别在于存储空间和查询速度,char 的存储空间是固定的,查询速度快,但空间利用率不高;varchar2 的存储空间是灵活的,查询速度相对较慢,但空间利用率高。因此,在实际应用中,我们...

    Oracle数据库字段类型详解

    与`CHAR` 不同,`VARCHAR2` 只存储实际赋予该列的字符,并且不添加额外的空格,因此通常需要的存储空间比`CHAR` 小。此外,`VARCHAR2` 把所有字符都按双字节处理(除了特定情况外),而`VARCHAR` 只对汉字和其他全角...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    oracle中varchar2(byte)和varchar2(char).doc

    ### Oracle中的VARCHAR2(BYTE)与VARCHAR2(CHAR)区别详解 #### 一、引言 在Oracle数据库中,`VARCHAR2`是最常用的字符数据类型之一,用于存储变长的字符串。然而,在定义`VARCHAR2`类型时,可以选择指定长度为`BYTE`...

    oracle字段说明

    Oracle 字段类型详解 Oracle 字段类型是数据库设计的基础,了解这些类型可以帮助开发者更好地设计数据库结构。下面是 Oracle 中常用的字段类型的详解: 1. CHAR(size):定长字符串类型,用于保存定长的字符串数据...

    oracle建触发器与创建递增字段

    ### Oracle 创建触发器与创建递增字段 #### 一、Oracle数据库中的递增字段实现方法 在Oracle数据库中,为了实现自动递增的功能,我们通常会使用`SEQUENCE`对象来实现这一目标。序列(SEQUENCE)是Oracle提供的用于...

    oracle数据库表中修改字段的顺序

    ### Oracle数据库表中修改字段顺序的方法 在Oracle数据库中,我们常常会遇到需要...通过以上详细步骤,我们可以了解到如何在Oracle数据库中修改字段顺序的具体方法及其注意事项,从而提高数据库管理的灵活性和效率。

    Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法

    这对于数据处理来说显然是不正确的,因为char类型在Oracle中可以存储固定长度的字符串,而不仅仅是一个字符。本文将详细介绍如何解决这一问题,并提供几种有效的解决方案。 #### 问题背景 Hibernate是Java平台下的...

    Oracle与DB2数据类型分类对应说明

    例如,在 DB2/400 中,我们可以使用定长的 CHAR(N)类型与 Oracle 的 VARCHAR2(n)相对应,这样可以提高效率和节省存储空间。 四、LOB 类型 DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相...

    oracle char,varchar,varchar2的区别和使用方法

    ### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...

    Oracle EBS 报表输出字符字段前部"0"被Excel自动去掉问题

    对于包含前导零的字符字段,应将其格式设置为“Text”或“Char”,以确保在输出时不进行数值转换。 3. **导出格式**: 当导出到Excel时,可以选择不同的格式,如CSV(逗号分隔值)或直接导出为Excel文件。CSV是一...

    Oracle接收长度大于4000的字符串

    - **兼容性**:确保.NET环境与Oracle数据库版本之间的兼容性。 通过以上步骤,可以在.NET环境中成功处理和传递长度超过4000个字符的字符串至Oracle数据库,并通过存储过程读取这些数据。这种方式不仅能够解决字符串...

    数据库表字段换行方法

    - **多行备注**:在需要记录多行备注的情况下,可以在备注字段中使用换行符来分隔不同行的内容。 - **地址信息**:例如存储用户的邮寄地址时,可以使用换行符将不同的地址部分分开,如省份、城市、街道等。 - **日志...

    浅析Oracle中char和varchar2的区别

    然而,由于`VARCHAR2`的变长特性,Oracle在处理`VARCHAR2`字段时需要额外进行语法分析,以确定每个字段的确切长度,这可能导致查询速度略慢于`CHAR`类型。 在大数据量的环境中,`VARCHAR2`通常更受欢迎,因为它能更...

    数据库(Oracle)命名规范

    在Oracle数据库管理中,遵循一套标准的命名规范是非常重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能减少错误的发生,使得团队协作更加高效。本文将详细介绍Oracle数据库中的命名规范,包括表命名...

Global site tag (gtag.js) - Google Analytics