답변:
데이터 유형 및 크기를 확인하십시오.
>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 바이트를 언급하는 오라클 페이지를 읽습니다. 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 데이터베이스 사용자를 사용하기위한 것입니다. 이 답변을 철저히 확인하여 자신있게 답변을 게시했습니다.