Oracle/Oracle Tip(10)
-
listener.log 초기화
$ cp listener.log listener.log.20241108 # 백업$ cp /dev/null listener.log # 원본 파일 내용 삭제 만약 mv 또는 rm 을 하여 원본파일을 바꾼 후 새롭게 listener.log을 만들었다고 한다면 정상적인 작동은 되지 않을 것입니다.반드시 기존 원본파일을 그대로 둔 상태여야 정상적으로 다시 로그가 쌓일 것입니다.
2024.11.08 -
split - REGEX_SUBSTR, REGEX_REPLACE
(1) 테스트 테이블 생성 create table split_table as select 'a/b/c/d/e' name from dual; (2) REGEXP_SUBSTR select regexp_substr(name,'[^/]+',1,1) regexp_substr_name1, regexp_substr(name,'[^/]+',1,2) regexp_substr_name2, regexp_substr(name,'[^/]+',1,3) regexp_substr_name3, regexp_substr(name,'[^/]+',1,4) regexp_substr_name4, regexp_substr(name,'[^/]+',1,5) regexp_substr_name5 from split_table; 결과 a b c d e ..
2022.04.22 -
sqlplus 에서 ed(edit) 시 vi편집기 사용.
리눅스(우분투)에서 sqlplus를 접속 후 작업시 ed 또는 edit 를 쳐서 쿼리를 수정하는 경우가 있다. 그러나 vi가 실행은 된 것 같은데 기존 쿼리는 온데 간데없고 이상한 문구나 '?' 만 표시가 되어있다. q를 눌러 나가게 되면 기존쿼리가 출력이 되면서 나간다. 해결 방법은.. $ORALCE_HOME/sqlplus/admin/glogin.sql 파일을 열어서 맨 아래줄에 define_editor=vi 를 입력한다. 다시 해보면 정상적으로 편집기가 실행된다.
2011.11.08 -
Range 파티션 테이블 및 테이블 스페이스 삭제 script
대용량 파티션 테이블에 일정기간 데이터만을 보유할 경우 부분적으로 파티션 테이블 및 테이블 스페이스를 삭제를 해야하는 경우가 있다. 아래 쿼리들은 Range 파티션 테이블 일때 해당 되는 쿼리이다. partition_name을 날짜로 지정해 주었을 때만 해당기간에 대해서 날짜를 가져와서 출력할 수 있다. 쿼리 실행시 주의할 점은 전부 쿼리를 실행시켜서 script가 출력되게 하여야 한다는 것이다. 무슨말이냐면 아래 쿼리들은 전부 dba_tab_partitions에서 가져온다. 그러므로 파티션 테이블 삭제 스크립트만 돌리고 다음 쿼리(테이블스페이스 삭제 쿼리)를 실행시키고자 하면 데이터가 안나온다. 1. 파티션 테이블 부분 삭제 script 생성 select 'alter table '||table_owne..
2011.04.14 -
long형 replace
-- 테이블 포맷SQL> desc long_replace Name Null? Type ------------------ -------- ----------------------- LONGTYPE LONG ID VARCHAR2(20) CLOBTYPE CLOB long형 타입의 컬럼은 replace가 되질 않는다. 아래와 같은 메세지를 뿌리게 된다. SQL> update long_replace set longtype = replace(longtype,'기능','기능불가');update long_replace set longtype = replace(longtype,'기능','기능불가') *ERROR at line 1:ORA-00932: 일관성 없는 데이터 유형: NUMBER이(가) 필요하지만 LONG임 방법..
2011.01.24 -
LONG과 CLOB 에 대한 데이터 이전.
CLOB 같은 경우는 일반적으로 CTAS 가 가능하다.그러나 LONG형은 불가능하다. 예전에는 export/import를 통하여 데이터를 이전시키는 경우가 있었다.아래와 같은 명령어로 인하여 COPY가 가능하게 되었다. copy from scott/tiger@prod create test_long2 using select * from test_long; scott/tiger@prod LONG형 테이블을 가져올 데이터 베이스의 계정을 말한다. 그러나 이 명령어는 CLOB 포맷의 컬럼은 COPY가 불가능하다. 다음과 같은 메세지가 보여지게 된다. SQL> scott/tiger@prod Connected. SQL> create table test_long 2 (a varchar2(20), 3 b number,..
2011.01.04