まとめ
環境変数ORACLE_CHARACTERSETにAL32UTF8を設定してデータベース作成することでUTF8化される。
OracleのDocker化
Oracle Docker化のやり方は他に情報がたくさんあるので省略する。下記あたりを参照。
https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md
https://qiita.com/gorilla0513/items/f22e8cce4e08da031abe
docker-compose.yml
docker-compose.yml
version: "3"
services:
oracle:
image: oracle/database:19.3.0-ee
volumes:
- ./oracle/oradata:/opt/oracle/oradata
- ./oracle/init:/docker-entrypoint-initdb.d/startup
ports:
- 1521:1521
- 18080:8080
- 5500:5500
environment:
- ORACLE_PWD=testpwd
- ORACLE_PDB=testdb
- ORACLE_CHARACTERSET=AL32UTF8
- NLS_LANG=Japanese_Japan.AL32UTF8
charset確認
SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),
NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;
NLS_CHAR NLS_CHARS
-------- ---------
AL32UTF8 AL16UTF16