Oracle(98)
-
trigger 사용
1. 테이블 확인SQL> select * from scott.tmp_result; 2. history 테이블 생성SQL> create table scott.table_history as select ename, sysdate dt from scott.tmp_result where 1=2;Table created. 3. trigger 생성create or replace trigger table_history_triggerbefore insert on scott.tmp_resultfor each rowbegin if inserting then insert into scott.table_history values(:new.ename, sysdate); end if;end table_hi..
2024.11.13 -
listener.log 초기화
$ cp listener.log listener.log.20241108 # 백업$ cp /dev/null listener.log # 원본 파일 내용 삭제 만약 mv 또는 rm 을 하여 원본파일을 바꾼 후 새롭게 listener.log을 만들었다고 한다면 정상적인 작동은 되지 않을 것입니다.반드시 기존 원본파일을 그대로 둔 상태여야 정상적으로 다시 로그가 쌓일 것입니다.
2024.11.08 -
UTL_HTTP 에러
1. UTL_HTTP 사용하는 프로시저를 컴파일을 하였지만 다음과 같은 에러가 발생하였다. ORA-06550: line 3, column 6: PLS-00201: identifier 'SYS.UTL_HTTP' must be declared ORA-06550: line 3, column 6: 2. 원인을 찾던 중 utl_http 가 정의(?)가 되지 않았음을 알 수 있었다. 알 수 있었던 방법은 단순하였다. https://community.oracle.com/tech/developers/discussion/469405/problem-calling-utl-http-in-oracle-xe $ sqlplus "/as sysdba" SQL> desc utl_http utl_http의 정보들이 출력이 될 것이다. ..
2022.06.21 -
패스워드 주기 확인
사용자의 패스워드 주기를 알고 싶을 때 쿼리 사용자에 적용된 profile 확인 select username,profile from dba_users where username = 'scott'; 프로파일에 적용된 패스워드 권한 확인 select * from dba_profiles where profile = 'DEFAULT'; PASSWORD_LIFE_TIME:패스워드를 변경해야하는 주기 PASSWORD_REUSE_TIME:패스워드 변경시 이전 패스워드를 재사용할 수 있는 기간(즉, 해당 기간이 지나야 재사용 가능)
2022.04.22 -
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 -
아주 쉬우면서도 착각할 수도 있는 날짜 조회
아래와 같은 테이블이 존재한다. SQL> select name, reg_date from temp_food_info; NAME REG_DATE archor 2022/04/05 23:44:11 milk 2022/04/06 10:23:44 water 2022/04/07 00:00:00 chicken 2022/04/07 00:00:01 meat 2022/04/08 00:10:00 여기서 우리는 등록날짜가 4/6~4/7 데이터를 산출 할 것이다. SQL> select * from temp_food_info where reg_date between to_date('20220406','yyyymmdd') and to_date('20220407','yyyymmdd') ; 결과값 NAME REG_DATE -------..
2022.04.07