微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker + oracle 即时客户端:编码问题

如何解决docker + oracle 即时客户端:编码问题

我使用这张图片

image: sflyr/sqlplus:latest

和这个脚本(gitlab-ci):

  script:  
  - |
    /instantclient_11_2/sqlplus login/pwd@//myserveur.prod:1521/sid.mysid<<EOF 
    @myscript.sql
    EOF 

myscript.sql:

select 'é' from dual;

结果:

sql> sql> 
'?
--
??

存在编码问题...

我尝试将其添加到脚本中以修复它,但它不起作用:

script:  
      - apt-get update && apt-get install locales
      - apt-get update
      - dpkg-reconfigure locales
      - locale-gen
      - export LANG=en_US.UTF-8 
      - locale
      - |
        /instantclient_11_2/sqlplus login/pwd@//myserveur.prod:1521/sid.mysid <<EOF 
        @myscript.sql
        EOF 

结果:

$ locale-gen
Generating locales (this might take a while)...
Generation complete.
$ export LANG=en_US.UTF-8
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
locale: $ /instantclient_11_2/sqlplus login/pwd@//myserveur.prod:1521/sid.mysid <<EOF  # collapsed multi-line command
Cannot set LC_ALL to default locale: No such file or directory
sql*Plus: Release 11.2.0.3.0 Production on Sun Mar 14 21:47:41 2021
copyright (c) 1982,2011,Oracle.  All rights reserved.
Connecte a :
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
sql> sql> 
'?
--
??

知道如何解决这个问题吗?

解决方法

您使用哪个编辑器来创建 .sql 脚本?您在那里设置了哪种编码?

一旦你知道这些信息,你就必须告诉它 Oracle。这是由 NLS_LANG 参数完成的,例如export NLS_LANG=.AL32UTF8

OdbcConnection returning Chinese Characters as "?"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?