728x90
반응형

DB/ORACLE 10

[ORACLE] 테이블 코멘트, 컬럼 정보, 컬럼 코멘트 조회

테이블 코멘트 조회 -- 테이블 코멘트 조회 select * from ALL_TAB_COMMENTS where TABLE_NAME = '테이블명'; ALL_TAB_COMMENTS 테이블을 조회하면 테이블의 owner, 테이블명, 타입, 코멘트를 조회할 수 있다 컬럼 정보 조회 -- 컬럼 조회 select * from cols where TABLE_NAME = '테이블명'; COLS 테이블을 조회하면 테이블명, 컬럼명, 데이터 타입, 널 여부 등 컬럼 정보를 조회할 수 있다 컬럼 코멘트 조회 -- 컬럼 코멘트 조회 select * from USER_COL_COMMENTS where TABLE_NAME = '테이블명'; USER_COL_COMMENTS를 조회하면 테이블명, 컬럼명, 컬럼 코멘트를 조회할 수 ..

DB/ORACLE 2023.01.12

[ORACLE] 테이블 구조 및 데이터 복사

테이블 구조 및 데이터 복사하기 CREATE TABLE 신규테이블명 AS SELECT * FROM 복사할테이블명 [WHERE] 테이블 구조만 복사하기 CREATE TABLE 신규테이블명 AS SELECT * FROM 복사할테이블명 WHERE 1=2 테이블이 존재할경우, 데이터만 복사하기(구조가 같은경우) INSERT INTO 복사대상테이블명 SELECT * FROM 원본테이블명 [WHERE] 테이블이 존재할경우, 데이터만 복사하기(구조가 다를경우) INSERT INTO 복사대상테이블명 (COL1, COL2) SELECT COL1, COL2 FROM 원본테이블명 [WHERE]

DB/ORACLE 2022.12.21

[ORACLE] 중복데이터 조회 및 삭제(ROWID, PARTITION BY 사용)

중복된 데이터를 삭제할때 pk가 있으면 pk를 쓰면 되지만 pk가 없는 경우에는 ROWID를 사용해서 중복데이터를 삭제할 수 있다 ROWID ROWID는 ORACLE 에서 INDEX를 생성하기 위해 내부적으로 사용하는 PSEUDOCOLUMN으로 사용자가 임의로 변경하거나 삭제할 수 없다. ROWID는 테이블에 데이터를 입력하면 자동으로 생성되고 각각 고유의 값을 갖게 된다. 000000 000 000000 000 오브젝트 번호 상대 파일 번호 블록 번호 블록 내 행번호 ex) AAAdtzAAaAAEe0bAAA 1. 오브젝트 번호 : 오브젝트의 고유 번호 2. 상태 파일 번호 : 테이블스페이스에 속해있는 데이터 파일에 대한 상대 파일번호 3. 블록 번호 : 데이터 블록의 위치를 알려주는 번호 4. 블록 내..

DB/ORACLE 2022.12.21

[ORACLE] 오라클 특정 문자열 치환/ 특정 문자열(특수문자) 제거(replace)/ ASCII 코드값 찾기

요즘에 기존 운영하던 사이트에 용어사전 페이지를 추가하면서 내가 맡게 됐는데 DB 설계, 구축부터 혼자 하다보니 바쁘긴한데 배우는게 많다 단어의 뜻 안에 있는 단어를 구별하기 위해서 단어를 '#' 으로 감싸야 하는 작업이 필요했다 사용함수 : replace(컬럼명, '찾을문자', '변환문자') update TERM_DIC set DEFINITION = replace(DEFINITION, '수문조사시설', '#수문조사시설#'); 이런 식으로 사용하면 된다 이때, 문제는 그냥 select 를 하면 ' # '이 같이 나온다는 건데 SELECT definition def, replace(definition, chr(35), '') deforg FROM TERM_DIC 이때도 ' # ' 을 ''으로 변환해서 조회..

DB/ORACLE 2022.05.31

[ORACLE] ORA-01578: ORACLE 데이터 블록이 파손되었습니다

페이지를 로드하다보니 오라클 데이터 블록이 파손되었다는 오류가 떴다 select segment_name, segment_type from dba_extents where file_id=78 and 300930 between block_id and block_id + blocks-1 ; 이때 적혀있는 파일번호와 블록번호를 넣어 셀렉트 쿼리를 돌리면 손상된 블록?의 이름과 타입이 나오게된다 이때 드롭 쿼리를 돌려주는데 이런 오류가 또 떴다 그때 이 순서로 쿼리를 다시 돌려주면 해결된다. alter table [테이블명] drop primary key; /*pk 없애기*/ drop index [인덱스명]; /*인덱스 없애기*/ create unique index [인덱스명] on [테이블명](컬럼, 컬럼); ..

DB/ORACLE 2022.04.05
728x90
반응형