Oracleに新しいテーブル作ったらAccessでODBCにつながらなくなった

前回の問題ですが、テーブルの再インポート行った後新しいテーブル作成したらつながらなくなりました。
Oracleスキーマ作成する際にCreateUser飛ばしてる人なんてまあいなくて、Userが持ってるODBC等へのデフォルトのアクセス権限の情報なんても全然出てこなかったため、やっぱりCreateUserスキップしてたことが直接の問題ではないみたい。(軽率な行動には違いないですが)

前回の話には書いてなかったけど、実際前回のエラー発生時も新しいテーブルを作成した後に本エラーが起きてました。
順番としては

0. 正常接続している状態
1. IMPDP(CreateUserスキップ)
2. テーブル作成
3. リンクテーブル作成←できない

が正しい。
というわけで作ったテーブルに問題がありそうなのでとりあえず作成したテーブルをDrop。
すると正常に接続できました。なんだー。

原因がはっきりしたので調べてみたところ、テーブル名の長さが原因でした。
https://www.it-swarm-ja.tech/ja/oracle/oracle%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E5%90%8D%E3%81%AE%E6%9C%80%E5%A4%A7%E9%95%B7%E3%81%AF%EF%BC%9F/957914526/
Oracle12.1以下ではテーブル名の最大長は30バイト。
12.2以上では128バイトのよう。

ややこしいんですが、現在クライアントサーバにはOracle12cと11gの両方が入っており、
テーブルを作成したのは12cサーバ。
ODBC接続はその12cサーバを見ているものの、11gのOracleCriantを利用していたため、12cで作成した新しいテーブルのテーブル名が処理できずエラー落ちしてしまったということ。

すっきりしましたー。

この記事が気に入ったらサポートをしてみませんか?