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
'programing' 카테고리의 다른 글
Woocommerce - 제품 종류 링크 방법 (0) | 2023.03.31 |
---|---|
Angularjs 서비스는 싱글톤입니까? (0) | 2023.03.31 |
AngularJS 1.x에서 필터를 유닛 테스트하는 방법 (0) | 2023.03.31 |
Angular.js에서 경로 정의를 연기하려면 어떻게 해야 합니까? (0) | 2023.03.31 |
Angular JSangular-ui 모달 호출 시 $timeout 지우기 (0) | 2023.03.26 |