Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
如何使用sqlplus在Oralce中插入具有正确十六进制值的umlaut_Sql_Oracle_Internationalization - Fatal编程技术网

如何使用sqlplus在Oralce中插入具有正确十六进制值的umlaut

如何使用sqlplus在Oralce中插入具有正确十六进制值的umlaut,sql,oracle,internationalization,Sql,Oracle,Internationalization,我在文本文件中有一个u umlaut,带有十六进制转储值 cat /tmp/bb ü hexdump /tmp/bb 0000000 bcc3 000a 0000003 在数据库中插入umlaut时,列的类型为VARCHAR2(128 CHAR) 字节是完全不同的。(我的数据库设置为UTF8字符集) 问题:如何使用sqlplus将数据插入列中。有什么想法吗?假设您的意思是有一个带分音符的u,而不是一个带unmlat的u,您可以使用U

我在文本文件中有一个u umlaut,带有十六进制转储值

cat /tmp/bb
ü

hexdump /tmp/bb
0000000 bcc3 000a                              
0000003
在数据库中插入umlaut时,列的类型为VARCHAR2(128 CHAR)

字节是完全不同的。(我的数据库设置为UTF8字符集)


问题:如何使用sqlplus将数据插入列中。有什么想法吗?

假设您的意思是有一个带分音符的u,而不是一个带unmlat的u,您可以使用UNISTR函数在SQL*Plus中输入字符的UCS-2代码点(u+00FC表示带分音符的u)


但是,如果您只是试图将文件中的数据读取到数据库中,则可能有比将所有内容转换为UCS-2代码点更简单的选项。

我转储了文件内容“cat/tmp/bb”,其中只有umlaut。是的,数据库数据编码不正确,字节完全不同。
DUMP(res,1016)
Typ=1 Len=6 CharacterSet=UTF8: ef,bf,bd,ef,bf,bd
SQL> create table foo (
  2    col1 varchar2(1 char)
  3  );

Table created.

SQL> insert into foo values( unistr('\00fc') );

1 row created.

SQL> ed
Wrote file afiedt.buf

  1  select dump(col1, 1016)
  2*   from foo
SQL> /

DUMP(COL1,1016)
-------------------------------------------------------------

Typ=1 Len=2 CharacterSet=AL32UTF8: c3,bc