Programming

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

procodes 2020. 5. 17. 19:48
반응형

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


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


에서 오라클 12.2 최대 오브젝트 이름의 길이 이상은 128 바이트입니다.

에서 오라클 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 all_tab_columns

TABLE_NAME VARCHAR2 (30)가 표시됩니다

참고 VARCHAR2 (30)은 30 자 제한이 아니라 30 바이트 제한을 의미하므로 데이터베이스가 멀티 바이트 문자 세트를 사용하도록 구성 / 설정된 경우 다를 수 있습니다.

마이크


맞습니다. 그러나 ASCII 문자를 사용하는 한 멀티 바이트 문자 세트조차도 정확히 30 자로 제한됩니다 ... 따라서 마음에 고양이를 넣고 싶지 않다면 DB 이름을 잘 사용하십시오 ...


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


Oracle 12.2, 당신은 내장 상수 사용할 수 있습니다 ORA_MAX_NAME_LEN, 이전 (12.2 당) 128 바이트로 설정 Oracle 12.1최대 크기는 30 바이트를했다.


내가 다루고있는 10g 데이터베이스에서 테이블 이름이 최대 30 자라는 것을 알고 있습니다. 열 이름 길이가 무엇인지 말할 수 없었습니다 (그러나 나는 그것이 30 이상이라는 것을 알고 있습니다).


Oracle 데이터베이스 오브젝트 이름의 최대 길이는 30 바이트 입니다.

개체 이름 규칙 : http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm


The maximum name size is 30 characters because of the data dictionary which allows the storage only for 30 bytes


I'm working on Oracle 12c 12.1. However, doesn't seem like it allows more than 30 characters for column/table names.

Read through an oracle page which mentions 30 bytes. https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223

In 12c although the all_tab_columns do say VARCHAR2(128) for Table_Name, it does not allow more than 30 bytes name.

Found another article about 12c R2, which seems to be allowing this up to 128 characters. https://community.oracle.com/ideas/3338


The maximum length of the table and column name is 128 bytes or 128 characters. This limit is for using sybase database users. I verified this answer thoroughly, so that I have posted this answer confidently.

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

반응형