Oracle에서 테이블 이름과 열 이름의 최대 길이는 얼마입니까?
답변
답변
남자에게 물고기를 가르치다
데이터 유형 및 크기를 확인하십시오.
>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
답변
내가 다루고있는 10g 데이터베이스에서 테이블 이름이 최대 30 자라는 것을 알고 있습니다. 열 이름 길이가 무엇인지 알 수 없습니다 (그러나 30 이상임).
