Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在oracle表中插入中间带空字符的字符串_Java_Null_Char - Fatal编程技术网

Java 在oracle表中插入中间带空字符的字符串

Java 在oracle表中插入中间带空字符的字符串,java,null,char,Java,Null,Char,我有一个StringBuffer类型的变量,它具有空字符,即'\0'中间字符。我可以使用空字符正确打印变量。但当我尝试在Oracle表中插入此变量时,我无法插入整个StringBuffer变量;仅“\0”之前的部分。插入此变量的列的数据类型为varchar2(50)。 我不知道为什么会这样。可能是oracle不允许包含空字符的字符串。我知道,一旦在字符串中遇到“\0”,它将被视为字符串的结尾。 这是我试过的 StringBuffer buffer = new StringBuffer(); bu

我有一个StringBuffer类型的变量,它具有空字符,即'\0'中间字符。我可以使用空字符正确打印变量。但当我尝试在Oracle表中插入此变量时,我无法插入整个StringBuffer变量;仅“\0”之前的部分。插入此变量的列的数据类型为varchar2(50)。 我不知道为什么会这样。可能是oracle不允许包含空字符的字符串。我知道,一旦在字符串中遇到“\0”,它将被视为字符串的结尾。 这是我试过的

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?这取决于您的逻辑。