gpt4 book ai didi

java - 如何对 Oracle 中接受任何语言文本的列应用最大长度限制

转载 作者:行者123 更新时间:2023-12-02 03:49:39 26 4
gpt4 key购买 nike

我正在使用 Java 和 Oracle。

我有一个列 col1 ,限制为 100 个字符,并且可以接受任何语言的字符。例如,它可以存储“Test”(英语)作为值以及“ทดสอบ”(泰语)作为值。

我面临的问题是,如果我使 col1 具有数据类型 varchar2(100),它适用于英文字符,但不适用于泰文字符。

发生这种情况是因为当我查看泰语字符大小时,它只有 5。但是当它在存储在数据库中时转换为字节时,它会转换为更长的字符 (>5)。因此,当我输入一些仅包含 48 个字符的泰语样本文本时,结果是 136 个字节。因此,我的数据库不接受该值,抛出 DataTruncationError。

如何从数据库角度处理这种情况?我应该为 col1 使用什么数据类型,以确保任何语言的最大字符数限制为 100 个?

最佳答案

您可以指定字节长度或字符长度。在本例中,您希望确保该列接受 100 个字符,因此您声明:varchar2(100 char) 而不是 varchar2(100 byte)。如果省略 char 或 byte,则使用为数据库设置的 NLS_LENGTH_SEMANTICS 定义列。

https://docs.oracle.com/cd/E24693_01/server.11203/e24448/initparams149.htm

关于java - 如何对 Oracle 中接受任何语言文本的列应用最大长度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35984229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com