回答:
でオラクル12.2及び最大オブジェクト名の長さの上方には、128バイトです。
Oracle 12.1以前では、オブジェクト名の最大長は30バイトです。
データタイプとサイズに注意してください
>describe all_tab_columns
VIEW all_tab_columns
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
DATA_TYPE VARCHAR2(106)
DATA_TYPE_MOD VARCHAR2(3)
DATA_TYPE_OWNER VARCHAR2(30)
DATA_LENGTH NOT NULL NUMBER
DATA_PRECISION NUMBER
DATA_SCALE NUMBER
NULLABLE VARCHAR2(1)
COLUMN_ID NUMBER
DEFAULT_LENGTH NUMBER
DATA_DEFAULT LONG
NUM_DISTINCT NUMBER
LOW_VALUE RAW(32)
HIGH_VALUE RAW(32)
DENSITY NUMBER
NUM_NULLS NUMBER
NUM_BUCKETS NUMBER
LAST_ANALYZED DATE
SAMPLE_SIZE NUMBER
CHARACTER_SET_NAME VARCHAR2(44)
CHAR_COL_DECL_LENGTH NUMBER
GLOBAL_STATS VARCHAR2(3)
USER_STATS VARCHAR2(3)
AVG_COL_LEN NUMBER
CHAR_LENGTH NUMBER
CHAR_USED VARCHAR2(1)
V80_FMT_IMAGE VARCHAR2(3)
DATA_UPGRADED VARCHAR2(3)
HISTOGRAM VARCHAR2(15)
describe user_mview_logs
は戻りますLOG_TABLE VARCHAR2(128)
が、マテリアライズドビューのログ名に30文字以上に近づくと、かなり不可解な結果が得られます。
DESCRIBE all_tab_columns
TABLE_NAME VARCHAR2(30)が表示されます
注VARCHAR2(30)は、30文字の制限ではなく30バイトの制限を意味するため、データベースがマルチバイト文字セットを使用するように構成/設定されている場合は異なる場合があります。
マイク
30文字(実際には、前述のとおり、バイト)。
しかし、私を信用しないでください。これを自分で試してください:
SQL> create table I23456789012345678901234567890 (my_id number);
Table created.
SQL> create table I234567890123456789012345678901(my_id number);
ERROR at line 1:
ORA-00972: identifier is too long
更新:上記のとおり、Oracle 12.2以降では、オブジェクト名の最大長は128バイトになりました。
スキーマオブジェクトの命名規則も役立つ場合があります。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723
私が扱っている10gデータベースでは、テーブル名が最大30文字であることがわかっています。列名の長さが何であるかを伝えることができませんでした(しかし、それが30より大きいことはわかっています)。
Oracleデータベースオブジェクト名の最大長は30バイトです。
オブジェクト名のルール:http : //docs.oracle.com/database/121/SQLRF/sql_elements008.htm
私はOracle 12c 12.1に取り組んでいます。ただし、列/テーブル名に30文字を超えることができるようには見えません。
30バイトについて言及しているoracleページを読みます。 https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223
12cでは、all_tab_columnsはTable_Nameに対してVARCHAR2(128)を示していますが、30バイトを超える名前は許可されていません。
12c R2に関する別の記事が見つかりました。これにより、128文字まで許可されているようです。 https://community.oracle.com/ideas/3338
テーブル名と列名の最大長は128バイトまたは128文字です。この制限は、sybaseデータベースユーザーを使用するためのものです。私はこの回答を徹底的に検証したので、自信を持ってこの回答を投稿しました。