programing

Oracle에서 테이블 이름의 최대 길이는 얼마입니까?

yellowcard 2023. 3. 31. 21:58
반응형

Oracle에서 테이블 이름의 최대 길이는 얼마입니까?

Oracle에서 테이블 이름과 열 이름의 최대 길이는 얼마입니까?

Oracle 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)                

설명 all_tab_columns

TABLE_NAME VARCHAR2(30)가 표시됩니다.

주: VARCHAR2(30)는 30바이트 제한이 아니라 30바이트 제한을 의미하므로 데이터베이스가 멀티바이트 문자 집합을 사용하도록 설정/설정되어 있는 경우 다를 수 있습니다.

마이크

네, 하지만 ASCII 문자를 사용하는 한 멀티바이트 문자 집합에서도 정확히 30자로 제한됩니다.그러니까 하트와 웃는 고양이를 DB에 넣고 싶지 않다면...

업데이트됨: 위에서 설명한 바와 같이 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

스키마 오브젝트 명명 규칙은 다음과 같은 용도로도 사용할 수 있습니다.

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

Oracle 12.2, 삽입 상수를 사용할 수 있습니다.ORA_MAX_NAME_LEN(12.2에 따라) 이전 버전에서는 128바이트로 설정됩니다.Oracle 12.1최대 사이즈는 30바이트였습니다.

제가 다루는 10g 데이터베이스에서 테이블 이름은 최대 30자로 되어 있습니다.열 이름 길이가 얼마인지 알려줄 수 없습니다(하지만 30 이상임을 알고 있습니다).

최대 이름 크기는 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 데이터베이스 사용자를 사용하기 위한 것입니다.저는 이 답변을 철저히 검증하여 자신 있게 이 답변을 올렸습니다.

언급URL : https://stackoverflow.com/questions/756558/what-is-the-maximum-length-of-a-table-name-in-oracle

반응형