Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Oracle SQL查找字符¡;在数据中_Sql_Oracle_Encoding - Fatal编程技术网

Oracle SQL查找字符¡;在数据中

Oracle SQL查找字符¡;在数据中,sql,oracle,encoding,Sql,Oracle,Encoding,是否可以在数据库记录中找到此下划线i字符?如果我真的喜欢这个 select * from mytable where cell like '%¡%'; 它可以找到行,在哪里?是存在的,不是存在的。但是这个呢?这些单词中的字符是错误的,所以可能存在编码问题。我认为编码是WIN1257试试这个: select * from mytable where instr(cell, UNISTR(<UNICODE code of your character>))>0; 输出: CEL

是否可以在数据库记录中找到此下划线i字符?如果我真的喜欢这个

select * from mytable where cell like '%¡%';
它可以找到行,在哪里?是存在的,不是存在的。但是这个呢?这些单词中的字符是错误的,所以可能存在编码问题。我认为编码是WIN1257

试试这个:

select * from mytable where instr(cell, UNISTR(<UNICODE code of your character>))>0;
输出:

CELL
-----------------------------------------------------------------------------------------------
fünny string

1 row selected.
编辑:如@Wernfried Domscheit所建议的,我已更改了CHR-->UNISTR,-事实上,这应该适用于任何字符集

select * from mytable where instr(cell, UNISTR(<UNICODE code of your character>))>0;
输出:

CELL
-----------------------------------------------------------------------------------------------
fünny string

1 row selected.

编辑:如@Wernfried Domscheit所建议的,我已更改了CHR-->UNISTR,-事实上,这应该适用于任何字符集

,假设您使用的是SQL*并且您必须相应地设置代码页和
NLS_LANG

C:\>chcp 1252
Active code page: 1252

C:\>set NLS_LANG=.WE8MSWIN1252
C:\>sqlplus ...

SQL> select * from mytable where cell like '%¡%';
注意,Windows代码页1257没有字符“
例如,对于ISO-8859-1,您必须将代码页更改为
chcp 1252
chcp 28591

假设您使用的是SQL*并且您必须相应地设置代码页和
NLS_LANG

C:\>chcp 1252
Active code page: 1252

C:\>set NLS_LANG=.WE8MSWIN1252
C:\>sqlplus ...

SQL> select * from mytable where cell like '%¡%';
注意,Windows代码页1257没有字符“
例如,对于ISO-8859-1,您必须将代码页更改为
chcp 1252
chcp 28591

列单元格数据类型?@jarlh列类型为VARCHAR2(4000字节)。我怀疑您使用的工具无法处理UTF8字符,并将此“”显示为选择结果。要进行验证,只需搜索一条记录,其中肯定包含您的特殊字符,然后查看它在SQL客户端中的显示方式。列单元格数据类型?@jarlh Column type是VARCHAR2(4000字节)。我怀疑您使用的工具无法处理UTF8字符,并将此“?”显示为select结果。要进行验证,只需搜索一条肯定包含您的特殊字符的记录,并查看它在SQL客户端中的显示方式。仅当您的数据库字符集为
AL32UTF8
(或类似字符集)时,此操作才有效。最好在INSTR(cell,UNISTR('\00fc'))>0(分别为“.”使用
UNISTR('\00a1')
)的情况下使用
,这样您就可以独立于此。只有当您的数据库字符集是
AL32UTF8
(或类似字符集)时,这才有效。如果INSTR(cell,UNISTR('\00fc'))>0(resp.
UNISTR('\00a1')
表示“”),则最好使用
,这样您就可以独立于此。