在 oracle table 中插入带有空字符中间的字符串

Insert string with null character intermediate in oracle table

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

StringBuffer buffer = new StringBuffer();
buffer.append("Vishal,");
buffer.append("Tavande,");
buffer.append('[=11=]');
buffer.append("Kolhapur");
System.out.println(buffer);

这显示我的输出为 "Vishal,Tavande, Kolhapur"。当我把这个缓冲区放在 table 中时,我只能看到 "Vishal,Tavande,"

请告诉我如何插入中间为空字符的字符串。

是的,在 Oracle 中,Varchar2 的行为类似于以 NULL 结尾的字符串。

您可以在本文档中搜索http://docs.oracle.com/cd/B14117_01/appdev.101/b10779/oci03typ.htm

所以,尝试一些不同的字符而不是 [=10=]