212

Oracleのテーブル名と列名の最大長はどれくらいですか?

4

12 に答える 12

312

Oracle 12.2以降では、オブジェクト名の最大長は128バイトです。

Oracle 12.1以下では、オブジェクト名の最大長は30バイトです。

于 2009-04-16T15:05:07.620 に答える
243

男に魚を教える

データ型とサイズに注意してください

>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)                
于 2009-04-16T16:10:40.353 に答える
19

DESCRIBE all_tab_columns

TABLE_NAME VARCHAR2(30)が表示されます

注VARCHAR2(30)は、30文字の制限ではなく、30バイトの制限を意味するため、データベースがマルチバイト文字セットを使用するように構成/セットアップされている場合は異なる場合があります。

マイク

于 2009-04-17T09:35:12.277 に答える
8

そうですが、ASCII文字を使用している限り、マルチバイト文字セットでも正確に30文字の制限があります...したがって、ハートと笑顔の猫を入れたい場合を除いて、DB名は問題ありません...

于 2010-09-10T09:06:49.117 に答える
5

更新:前述のように、Oracle 12.2以降では、オブジェクト名の最大長は128バイトになりました。

この投稿の残りの部分は、Oracle 12.1以下に適用されました。制限は30文字(実際にはバイト)でした。

しかし、私の言葉を信じないでください。これを自分で試してください(Oracle 12.1以下):

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
于 2012-10-12T15:39:00.657 に答える
3

スキーマオブジェクトの命名規則も役立つ場合があります。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723

于 2009-04-16T20:10:40.230 に答える
2

Oracle 12.2では、128バイトに設定された組み込み定数、を使用できます( 12.2ORA_MAX_NAME_LENによる)。以前は、Oracle 12.1最大サイズは30バイトでした。

于 2017-07-27T16:48:49.763 に答える
1

私が扱っている10gデータベースでは、テーブル名が最大30文字であることを知っています。列名の長さがわかりませんでした(ただし、30を超えていることはわかっています)。

于 2009-04-16T15:04:53.113 に答える
1

30バイトしか保存できないデータディクショナリのため、名前の最大サイズは30文字です。

于 2015-05-21T05:38:12.800 に答える
0

Oracleデータベースオブジェクト名の最大長は30バイトです。

オブジェクト名の規則: http ://docs.oracle.com/database/121/SQLRF/sql_elements008.htm

于 2015-09-08T09:31:49.497 に答える
0

私はOracle12c12.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

于 2017-06-06T08:50:45.593 に答える
-4

テーブルと列の名前の最大長は128バイトまたは128文字です。この制限は、Sybaseデータベースユーザーを使用するためのものです。私はこの回答を徹底的に検証したので、自信を持ってこの回答を投稿しました。

于 2016-04-08T11:00:53.580 に答える