首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语句中使用中文字母的SQL

语句中使用中文字母的SQL
EN

Stack Overflow用户
提问于 2019-11-29 14:19:40
回答 2查看 67关注 0票数 0

这周我一直在寻找很多东西,但我还没有找到解决办法。谢谢你提前帮忙!

我试图通过在Windows中将SQL查询作为批处理文件运行在sqlplus上,从而实现SQL查询的自动化。我只限于这个工具,因为我工作的公司不支持sql。总的说来,sqlplus工作得很好--它在查询中读取并给出输出,除非它明显跳过带有中文字母的部分。

在中,整个查询工作正常。

其目的是返回位于高速公路上的元素数,因此语句的一部分是在addr_street字段中搜索公路/高速公路/.:

代码语言:javascript
复制
AND ((addr_street Like '%Autobahn%'            
   OR addr_street Like '%Autovia%'            
   OR addr_street Like '%Autopista%'          
   OR addr_street Like '%Interstate%'        
   OR addr_street Like '%Highway%'
   OR addr_street Like '%Autostrada%'
   OR addr_street Like '%公路%'

.

如何将部分用中文字母重写为ASCII代码,以便cmd上的sqlplus能够读取文件?

我尝试使用unistr函数-- several中的查询没有返回错误,但是在几次不同输入的尝试中没有返回任何附加结果。

代码语言:javascript
复制
AND ((addr_street Like '%Autobahn%'            
   OR addr_street Like '%Autovia%'            
   OR addr_street Like '%Autopista%'          
   OR addr_street Like '%Interstate%'        
   OR addr_street Like '%Highway%'
   OR addr_street Like '%Autostrada%'
   OR addr_street Like unistr('\0631\06CC\062D\0627\00B7\00AF')  

,所以我的问题很简单:

我怎么重写?

代码语言:javascript
复制
OR addr_street Like '%公路%'

不使用中文符号而得到同样的结果?您会使用比sqlplus更多的工具/方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-29 14:48:42

Unistr似乎在这里工作,让我们首先使用asciistr

代码语言:javascript
复制
select asciistr(n'公路') from dual   --> result:  \516C\8DEF

并在查询中使用这些值:

代码语言:javascript
复制
with t(addr_street) as (select 'x公路q' from dual)
select * from t where addr_street like '%' || unistr('\516C\8DEF') || '%'

发现了一排。

票数 1
EN

Stack Overflow用户

发布于 2019-11-29 14:28:43

使用单引号而不是双引号来创建文本文本,对于NVARCHAR2/NCHAR文本文本,您需要用N作为前缀。

代码语言:javascript
复制
CREATE TABLE table_name ( value NVARCHAR2(20) );
INSERT INTO table_name VALUES (N'玄真');

查询

代码语言:javascript
复制
SELECT * FROM table_name

select asciistr(N'玄真') from table_name --this is optional if you already insert value with 'N'

结果

代码语言:javascript
复制
| VALUE |
|-------|
|    玄真 |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59106476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档