Oracle 열 데이터 크기 가져오기
Oracle db를 처음 사용하는데, 데이터 유형과 데이터 크기를 알 수 있는지 궁금합니다.제 말은: "제품" 표에 varchar2(20) 유형의 열 "위치"가 있다고 가정해 보겠습니다.결과 "varchar2"와 "20"으로 반환되는 쿼리를 작성할 수 있습니까?
감사해요!
user_tab_columns를 체크아웃합니다.
select data_type, data_length
from user_tab_columns
where table_name = 'PRODUCTS'
and column_name = 'LOCATION';
데이터를 이해하기 위해 열의 유형과 크기를 찾아야 합니까, 아니면 런타임에 알아야 하는 프로그램을 작성하고 있습니까?
지식을 얻기 위해 알아야 할 경우 입력desc tablename
SQLPlus에서 표의 열에 대해 설명합니다.
프로그래밍 방식으로 유형과 크기를 확인해야 하는 경우, 어떤 언어를 사용하고 계십니까... PL/SQL?자바?
USER_TAB_COLUMNS에서 선택하면 자신의 스키마에 있는 테이블의 열만 나열됩니다.다른 테이블의 경우 ALL_TAB_COLUMNS(또는 DBA가 액세스를 허용한 경우 DBA_TAB_COLUMNS)를 살펴봐야 합니다.사용자 또는 클라이언트가 다음 중 하나에 대해 저장 프로시저 또는 패키지를 컴파일하는 것을 허용하지 않을 수 있습니다.
오라클용 sqlplus에서 다음 작업을 수행합니다.
SELECT COLUMN_NAME,DATA_TYPE,DATA_LENGTH
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME'
AND COLUMN_NAME = 'YOUR';`
당신에게도 효과가 있기를 바랍니다!
SELECT CHAR_LENGTH FROM USER_TAB_COLUMNS WHERE TABLE_NAME = <TABLENAME> AND COLUMN_NAME = <COLUMNNAME>;
이 질문에 대한 대답은 저에게 유용했습니다.그러나 열 유형이 다음과 같을 때 data_length를 취할 때 고려해야 할 중요한 차이점이 하나 있습니다.NVARCAHR2
다음에 대해 반환된 data_length:NVARCHA2
열이 두 배가 됩니다.
이는 사용 중인 문자 인코딩 때문입니다.Oracle 설명서에는 다음과 같은 내용이 있습니다.
바이트 수는 AL16UTF16 인코딩의 경우 최대 2배 크기이고 UTF8 인코딩의 경우 최대 3배 크기일 수 있습니다.
따라서 이상적인 쿼리는 다음과 같습니다.
select table_name, column_name,
data_type, NVL(char_col_decl_length, data_length)
from user_tab_columns where table_name='T51_NOCOMP';
언급URL : https://stackoverflow.com/questions/4979515/oracle-get-column-data-size
'sourcetip' 카테고리의 다른 글
python's re: 문자열에 정규식 패턴이 포함된 경우 True 반환 (0) | 2023.07.17 |
---|---|
MongoDB 서버를 서비스로 실행하시겠습니까(터미널에서 분리)? (0) | 2023.07.17 |
셀의 값이 다른 열의 값과 같으면 조건부로 셀 형식 지정 (0) | 2023.07.17 |
다른 테이블에 대한 외부 키를 포함하는 테이블의 행을 삭제하는 방법 (0) | 2023.07.17 |
Python 변수의 인쇄 메모리 주소 (0) | 2023.07.17 |