LENGTH()
- LENGTH() 함수는 문자열의 길이를 출력하는 함수입니다.
LENGTH() 문법
SELECT LENGTH(컬럼) FROM 테이블;- LENGTH() 함수안에 출력하고자 하는 컬럼이나 문자열을 적어줍니다.
LENGTH() 테스트(//livesql.oracle.com/)
1) LENGTH( 컬럼 )
- LENGTH()을 이용하여 컬럼의 갯수를 출력할 수 있습니다.
2) LENGTH( 문자열 )
- LENGTH() 함수안에 한글도 사용이 가능합니다.
3) 바이트의 길이를 출력하는 LENGTHB()
- LENGTHB() 함수를 사용하면 문자열의 바이트 길이를 출력합니다. 한글은 한글자의 3바이트이므로 15를 출력합니다.
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Toad
개발 언어 : Oracle
/* =========================== */
/* =========================== */
[소스 코드]
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
* 1. length(컬럼 및 데이터) - 문자열 길이를 확인합니다
/* =========================== */
[ORACLE] 컬럼 정보 조회
접속한 사용자에 속한 테이블의 정보를 조회할 수 있으며, 전체 owner의 정보가 필요한 경우
user_xxx로 시작하는 테이블을 all_xxx로 변경하면 볼 수 있다.
컬럼 정보 조회
SELECT TABLE_NAME ,COLUMN_NAME -- 컬럼 명 ,DATA_TYPE -- 유형 ,DATA_LENGTH -- 데이터 길이 ,DATA_PRECISION -- NUMBER 전체 자릿수 ,DATA_SCALE -- NUMBER 소수점이하 표현 자릿수 ,NULLABLE -- NULL 여부 ,COLUMN_ID -- 컬럼 순서 ,DATA_DEFAULT -- 기본 값 FROM user_tab_columns -- 해당 계정에 속한 테이블 -- dba_tab_columns 전체 테이블의 경우 WHERE TABLE_NAME = 'EMP' -- 조회 할 테이블 명제약조건 조회
select a.table_name -- 테이블 ,a.constraint_name -- 제약 조건 명 ,b.constraint_type -- P,R,U,C ,a.column_name -- 해당 컬럼 ,a.position -- 제약 조건 순서 from user_cons_columns a -- 제약 컬럼 , user_constraints b -- 제약 조건 -- dba_cons_columns a -- , dba_constraints b where a.owner = b.owner and a.table_name = 'EMP' and a.constraint_name = b.constraint_name and b.constraint_type = 'P' order by a.constraint_name, a.position- 무결성 제약 조건
NOT NULL | NULL 허용하지 않음 |
UNIQUE | 해당 컬럼의 해당 값은 하나만 존재 |
PRIMARY KEY | 해당 컬럼의 값은 반드시 있어야 하며, 하나만 존재 |
FOREIGN KEY | 해당 컬럼이 참조하는 테이블에 있는 값만 입력 가능 |
CHECK | 해당 컬럼에 저장 가능한 값의 조건을 지정 |
- user_constraints 속성
P | Primary Key |
R | Foreign Key |
U | UNIQUE |
C | CHECK, NOT NULL |
Comment 조회
select a.table_name -- 테이블 ,a.column_name -- 컬럼 명 ,a.comments -- comment from user_col_comments a컬럼 유형 및 PK, Comment
select a.TABLE_NAME -- 테이블 명 ,a.COLUMN_NAME -- 컬럼 명 ,a.data_type || (case when a.data_type like '%CHAR%' then '(' || a.data_length || ')' when a.data_type = 'NUMBER' AND a.data_precision > 0 AND a.data_scale > 0 then '(' || a.data_precision || ',' || a.data_scale || ')' when a.data_type = 'NUMBER' AND a.data_precision > 0 then '(' || a.data_precision ||')' end )as data_type -- 자릿수 표현한 데이터 유형 ,decode(a.nullable, 'Y', 'YES', 'NO') isnull -- NULL 여부 ,decode(pk.column_name, null, '', 'PRI') column_key -- PK 여부 ,a.data_default -- 기본 값 ,column_id -- 생성 순서 ,comm.comments -- Comment from user_tab_columns a ,user_col_comments comm ,( select pkcol.table_name, pkcol.column_name from user_cons_columns pkcol , user_constraints pk_con where pkcol.owner = pk_con.owner and pkcol.constraint_name = pk_con.constraint_name and pk_con.constraint_type = 'P' ) pk where a.TABLE_NAME = 'EMP' and a.TABLE_NAME = pk.table_name(+) and a.column_name = pk.column_name(+) and a.table_name = comm.table_name(+) and a.column_name = comm.column_name(+) ORDER BY COLUMN_ID#oracle #컬럼정보 #comment