私はMySQLデータベースにテーブルを持っています。テーブルの名前は30文字以上です と同じテーブルをOracle 11gで作成したいのですが、Oracleでは名前に最大30文字のテーブルしか使用できません。
システムはこれらのテーブルに基づいているため、30文字未満の文字数にするためにテーブルの名前を変更することはできません。テーブル名を変更するとコストがかかります。私が探している答え。テーブル名が30文字以上
ありuser_tables
と呼ばれるテーブルであり、私はテーブルを記述する際には、table_name
フィールドがデータ型varchar2(30)
を持っていると言うので、私はテーブルを変更し、table_name varchar2(255)
を作ってみましたが、私はできなかった、それは私にエラーを与えます言って:
ORA-00942:表またはビューが、私が
sys
として
を接続していますが存在しません。
誰も私の問題を解決する方法を知っていますか?
シノニムが30以上の文字をサポートするかどうかわかりません。しかし、それは回避策かもしれません。同義語名の機能上の最大長は32バイトです。 30バイトを超える名前は、Java機能でのみ使用できます。 30バイトを超える名前を指定すると、Oracle Databaseは名前を暗号化し、暗号化の表現をデータ・ディクショナリに配置します。実際の暗号化にはアクセスできず、元の仕様またはデータ・ディクショナリ表現を同義語名として使用することはできません。[リンク](http://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_7001 .htm) – xQbert
'user_tables'はデータ辞書の一部であり、読み取り専用テーブルとビューのセットです。データディクショナリ内のオブジェクトを更新することはできません。 – eaolson
システムテーブルを更新できれば、ほかのすべてのシステムテーブルにどのような影響があるか分かりません。 – Ben