質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

Q&A

解決済

2回答

1288閲覧

oracle 11g 新元号対応について教えてください。

MuraMuradai

総合スコア13

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

0グッド

0クリップ

投稿2019/04/11 08:40

編集2019/04/11 09:11

現在Red Hat Linux 5.5 上でoracle 11g(11.2.0.3.0)を使用しており新元号対応の為
以下のサイト
https://www.shift-the-oracle.com/config/add-japanese-imperial-reiwa.html
https://qiita.com/ora_gonsuke777/items/dc21ee3f2abf718098b9
を参照に対応しようとしております。
#####対応方法
①下記内容でlxecal.nlt ファイルを作成し{ORACLE_HOME}/nls へ配置
※ファイルは、Windowsのテキストエディタで作成しWinscpで該当フォルダへ配置しました。
DEFINE calendar
calendar_name = "Japanese Imperial"
DEFINE calendar_era
era_full_name = CEE1CFC2 -- 令和(EUC hex)
era_abbr_name = 52 -- R
start_date = "MAY-01-2019 AD" -- 元年
-- end_date = "DEC-31-9999 AD"
ENDDEFINE calendar_era
ENDDEFINE calendar

②linux よりoracleへログインし下記コマンドを実行
$ lxegen
このとき、下記エラーメッセージが表示されてしまいます。
LXE-00201: Invalid or duplicated value '' in line 0 column 16
ファイル内容を見る限りは、重複したりしているデータはないと思っているのですが
どこの手順が間違っているのか教えていただけますでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Oracle を shutdown してから
$ lxegen
を実行
startup
したらどうなりますか?

追記
ora_gonsuke777さんのURL

念の為、{ORACLE_HOME} の指定方法はご存知ですよね?

# 定義ファイルlxecal.nlt作成とlxegen実行 cd ${ORACLE_HOME}/nls vi lxecal.nlt cat lxecal.nlt DEFINE calendar calendar_name = "Japanese Imperial" DEFINE calendar_era era_full_name = "cee1cfc2" era_abbr_name = "52" start_date = "MAY-01-2019 AD" end_date = "DEC-31-2200 AD" ENDDEFINE calendar_era ENDDEFINE calendar lxegen ls -la lxecal* -- 動作確認 SHUTDOWN IMMEDIATE; STARTUP; ALTER SESSION SET NLS_CALENDAR="Japanese Imperial"; SELECT SYSDATE FROM DUAL;

で実行してみては?

投稿2019/04/11 09:02

編集2019/04/12 07:45
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2019/04/11 09:14 編集

ご回答ありがとうございます。 > Oracle を shutdown してから > $ lxegen > を実行 > startup 上記手順を試してみます。
MuraMuradai

2019/04/12 06:05

上記手順にて行ってみましたが $ lxegen を実行した時点で LXE-00201: Invalid or duplicated value '' in line 0 column 16 のメッセージが表示されてしまいます。
MuraMuradai

2019/04/12 06:51

ご連絡ありがとうございます。 お恥ずかしい話ですが、サポート契約を結んでいない為、自力で行うしかないのです。。。
MuraMuradai

2019/04/12 08:58

詳細情報ありがとうございます。 いただきました手順で行ったところ、問題なく変更できました。 Windows上で作成していたことがまずかったようで、今回はLinux上のコマンドでlxecal.nltファイル を新規作成したところ問題なく処理がすすみました。 お忙しいところご回答ありがとうございました。
guest

0

Winscpでの転送時に文字コードは指定されているでしょうか?
linux側でファイル内容を確認されてみて下さい。

投稿2019/04/11 09:02

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2019/04/11 09:15

ご回答ありがとうございます。 転送時は文字コードを特に指定しておりません。 ファイル内容を確認してみたいと思います。
MuraMuradai

2019/04/12 06:13

ファイル内容を確認してみましたが Linux上では特に文字化け等は発生していないようです。 Windows側ではSJISで作成していますが、文字コードは変更したほうがよいのでしょうか?
sazi

2019/04/12 06:19

linux上で文字化けしていないなら大丈夫だと思いますよ。 後は本当にそのファイルを参照しているかどうかですね。 ファイル削除してlxegenすると正しく参照しているならエラー内容が変わるはずですから、試されてはどうでしょうか。
MuraMuradai

2019/04/12 06:52

ありがとうございます。 ファイル削除すると LXE-00200: Cannot open calendar external file のメッセージへ変更となりましたので、ファイルは正しく参照しているようです。
MuraMuradai

2019/04/12 08:59

ご連絡ありがとうございます。 lxecal.nltファイルをLinuxのコマンドで新規作成したところ問題なくできました。 Windows上で作成したことが原因のようでした。 お忙しいところご回答いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問