sourcetip

Oracle 열 데이터 크기 가져오기

fileupload 2023. 7. 17. 21:21
반응형

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 tablenameSQLPlus에서 표의 열에 대해 설명합니다.

프로그래밍 방식으로 유형과 크기를 확인해야 하는 경우, 어떤 언어를 사용하고 계십니까... 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

반응형