【问题标题】:docker + oracle instant client : encoding problemdocker + oracle 即时客户端:编码问题
【发布时间】:2021-03-14 22:00:11
【问题描述】:

我使用这张图片:

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> 
'?
--
??

关于如何解决这个问题的任何想法?

【问题讨论】:

标签: oracle docker gitlab-ci sqlplus instantclient


【解决方案1】:

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

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

OdbcConnection returning Chinese Characters as "?"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2013-12-23
    • 2022-06-22
    • 2013-12-05
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多