エラー「java.sql.SQLException:クローズされた接続です」の原因


先日、担当しているシステムでOEM(OracleEnterpriseManager)を使って、リアルタイムSQL監視を開くと「java.sql.SQLException:クローズされた接続です」と表示されて、SQLが全く監視出来なかった。

ググっても日本サイトでは、あまり参考になる記事が見つけられなかった。

ということで元OracleMasterPlatinumの知人に聞いてみた。

アプリやデータベースの状況を話すと、
知人「たまにSQLに日本語が混ざってるとエラーになると聞いたことがある」
と言っていた。

SQLに日本語が混ざるなんて。。

そう担当しているシステムは
テーブルの列名(カラム名)が日本語で作成されてある、個人的にはイケてないシステム。

ということで必然的にSQLを実行すると、日本語が含まれたSQLとなる。

さらには実行するSQLに日本語でコメントがされているので、たぶんこれなんだろうと。

全くしかし、これではせっかくの便利ツールが全く意味をなさない。残念。

というか列名に日本語を使うと非常に効率が悪い。

SQLを書く時も、いちいち日本語と英字を切り替えなければならず、最悪。

こんなITベンダー時代にはそんなシステムは作っていなかったが、社内SEをやっている今の職場では普通らしい。

他にもORACLEで日本語を使うとチラホラ正常に動かない、実行エラーになるものがあるらしいのでお気をつけ。