Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
SQL Plus XML解析器不';不允许åäö;_Sql_Xml_Xml Parsing_Sqlplus_Oracle Sqldeveloper - Fatal编程技术网

SQL Plus XML解析器不';不允许åäö;

SQL Plus XML解析器不';不允许åäö;,sql,xml,xml-parsing,sqlplus,oracle-sqldeveloper,Sql,Xml,Xml Parsing,Sqlplus,Oracle Sqldeveloper,我得到了一个包含XMLType的表。我的标记包含Å和Ö,例如“ÅR” 我已经使用Oracle SQL Developer对其进行了解析,但一旦我尝试在SQL Plus中使用相同的查询,它就不接受åäö。我不知道怎么解决这个问题 因此在终端中(原始或.sql文件中) 将出现以下错误: ORA-19114: XPST0003 - error during parsing the XQuery expression: LPX-00800: XQuery invalid token '' 1 ÅR

我得到了一个包含XMLType的表。我的标记包含Å和Ö,例如“ÅR” 我已经使用Oracle SQL Developer对其进行了解析,但一旦我尝试在SQL Plus中使用相同的查询,它就不接受åäö。我不知道怎么解决这个问题

因此在终端中(原始或.sql文件中)

将出现以下错误:

ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00800: XQuery invalid token ''
1   ÅR
-  ^

这很可能是sqlplus(或您调用它的shell)以错误的编码提供数据的问题

将文本中的非ascii字符替换为
UTL\u I18N.raw\u to\u字符(HEXTORAW(“”),“”)
。这将把字符转换成数据库字符集,并且应该通过其间的任何工具,因为您只需要我们的ascii符号作为规范

在您的示例中:

  • circonflex->
    UTL_I18N.raw_to_char(HEXTORAW('C5'),'WE8ISO8859P15')
  • O umlauted->
    UTL_I18N.raw_to_char(HEXTORAW('D6'),'WE8ISO8859P15')

不确定是否可以在路径中使用实体引用,但请尝试
PATH'Å;R'
…?不,HTML代码不起作用,我猜这与终端中的编码有关?或者SQL Plus..路径UNISTR('\00C5R')怎么样?没有。windows prompt中的chcp 1252解决了windows中的问题,但我无法在linux promptYep中解决它,似乎这是我调用的shell,chcp 1252在windows中解决了它,但我没有找到任何适用于linux终端的好解决方案建议的方法在任何操作系统下都有效。注意:您不必知道shell使用的字符集中的十六进制编码,只需知道oracle知道的某些字符集中的十六进制编码。evilbob22的变体也会起作用,但是,文件说,
UNISTR
转换为国家字符集,而不是db字符集。
ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00800: XQuery invalid token ''
1   ÅR
-  ^