Java 在oracle表中插入中间带空字符的字符串
我有一个StringBuffer类型的变量,它具有空字符,即'\0'中间字符。我可以使用空字符正确打印变量。但当我尝试在Oracle表中插入此变量时,我无法插入整个StringBuffer变量;仅“\0”之前的部分。插入此变量的列的数据类型为varchar2(50)。 我不知道为什么会这样。可能是oracle不允许包含空字符的字符串。我知道,一旦在字符串中遇到“\0”,它将被视为字符串的结尾。 这是我试过的Java 在oracle表中插入中间带空字符的字符串,java,null,char,Java,Null,Char,我有一个StringBuffer类型的变量,它具有空字符,即'\0'中间字符。我可以使用空字符正确打印变量。但当我尝试在Oracle表中插入此变量时,我无法插入整个StringBuffer变量;仅“\0”之前的部分。插入此变量的列的数据类型为varchar2(50)。 我不知道为什么会这样。可能是oracle不允许包含空字符的字符串。我知道,一旦在字符串中遇到“\0”,它将被视为字符串的结尾。 这是我试过的 StringBuffer buffer = new StringBuffer(); bu
StringBuffer buffer = new StringBuffer();
buffer.append("Vishal,");
buffer.append("Tavande,");
buffer.append('\0');
buffer.append("Kolhapur");
System.out.println(buffer);
这将我的输出显示为“Vishal、Tavande、Kolhapur”。当我把这个缓冲区放在表中时,我只能看到“Vishal,Tavande,”
请告诉我如何插入带有null char intermediate的字符串。是的,在Oracle中,Varchar2的行为类似于以null结尾的字符串 您可以在此文档中搜索
因此,请尝试一些不同的字符,而不是
\0
是的,在Oracle中,Varchar2的行为类似于以NULL结尾的字符串
您可以在此文档中搜索
因此,出于好奇,请尝试使用一些不同的字符,而不是
\0
——为什么要故意在其中输入null?我想将结构中的变量值输入到string/StringBuffer变量中,用于审计目的通常,如果结构中有null,它是实际的null还是“\0”?我只是想知道为什么要强制“\0”…这是因为显示结果的东西在null处停止。您的意思是\u0000。只是出于好奇-为什么您要故意在其中输入null?我想将结构中的变量值放入字符串/StringBuffer变量中以用于审计目的通常,如果您的结构中有null-它是实际的null-还是“\0”?我只是想知道为什么要强制“\0”…这是因为显示结果的东西在null处停止。您不是说\u0000。我可以用什么来代替\0?这取决于您的逻辑。我可以用什么来代替\0?这取决于您的逻辑。