SQL 4 Oracle 오라클용 sql 실무

SQL4Oracle 64

PLSQL 10초마다 무한반복

2011-08-02 10:24:26 SQL 4 Oracle 오라클용 sql 실무 ▒ PLSQL 10초마다 무한반복 declare find_tm number := 0; find_cnt number := 0; begin WHILE 1=1 LOOP select mod(TO_CHAR(SYSDATE,'ss'),10) INTO find_tm from dual; if find_tm = 0 then select count(*) INTO find_cnt from 목적_Table where 최득일자=to_char(SYSDATE,'yyyymmdd') and 확인플레그='0' ; if find_cnt > 5 then update 목적_Table set 확인플레그='1' where 최득일자=to_char(SYSDATE,'yyy..

SQL4Oracle 2023.03.10

우편번호로 시군구 지역 고객찾기

2011-08-01 15:17:51 SQL 4 Oracle ▒ 우편번호로 시군구 지역 고객찾기 ▒ 서울 중구 고객찾기 select * from 주소_Table where substr(우편번호,1,3)='100' ▒ 서울 지역 고객찾기 select * from 주소_Table where substr(우편번호,1,1)='1' ------------------------------------------- 100 서울 중구 110 서울 종로구 120 서울 서대문구 121 서울 마포구 122 서울 은평구 130 서울 동대문구 131 서울 중랑구 132 서울 도봉구 133 서울 성동구 134 서울 강동구 135 서울 강남구 136 서울 성북구 137 서울 서초구 138 서울 송파구 139 서울 노원구 140 서울 ..

SQL4Oracle 2023.03.10

JOIN UPDATE

2011-08-01 11:12:03 SQL 4 Oracle 오라클용 sql 실무 ▒ JOIN UPDATE ▒ bypass_ujvc 힌트 update /*+ bypass_ujvc */ ( select a.승인일 a_승인일, a.승인점수 a_승인점수 b.승인일 b_승인일, b.승인점수 b_승인점수 from 목적_Table a, 실적_Table b where b.고객ID=a.고객ID and b.취득일자=a.취득일자) SET a_승인일 = b_승인일, a_승인점수 = b_승인점수 where a_승인일 is null ▒ 집합 update 목적_Table a set (a.승인일, a.승인점수)=(select b.승인일, b.승인점수 from 실적_Table b where b.고객ID=a.고객ID and b.취득일자..

SQL4Oracle 2023.03.10

NULL 표현식2

2011-08-01 09:55:04 SQL 4 Oracle 오라클용 sql 실무 ▒ NULL 표현식2 ▒ NOT EXIST SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND NOT EXISTS (SELECT B.고객ID FROM 주소_Table B WHERE B.고객ID=A.고객ID) ▒ COUNT = 0 SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND 0 = (SELECT COUNT(*) FROM 주소_Table B WHERE B.고객ID=A.고객ID)

SQL4Oracle 2023.03.10

NULL 오류표현과 NULL 처리

2011-08-01 09:48:27 SQL 4 Oracle 오라클용 sql 실무 ▒ NULL 오류표현 (null값은 연산에 참여할 수 없다) ▒ NULL값이 있는 데이터(승인일자) 오류표현 SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND A.승인일자 '20110801' ▒ NULL값이 있는 데이터(승인일자) NULL처리 정상표현 SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND NVL(A.승인일자,'99991231') '20110801' ▒ NULL값이 있는 데이터(승인일자) 오류표현 SELECT A.고객ID, A.고객명, A.고객구..

SQL4Oracle 2023.03.10

NULL 표현식

2011-08-01 09:45:46 SQL 4 Oracle 오라클용 sql 실무 ▒ NULL 표현식 ▒ IS NULL SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND A.승인일자 IS NULL ▒ NULL SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND A.승인일자 = '' ▒ IS NOT NULL SELECT A.고객ID, A.고객명, A.고객구분, A.승인일자 FROM 목적_Table A WHERE A.고객상태='활동중' AND A.승인일자 IS NOT NULL

SQL4Oracle 2023.03.10

상수값 있는 OUT JOIN 오류표현

2011-08-01 09:02:16 SQL 4 Oracle 오라클용 sql 실무 ▒ 상수값 있는 OUT JOIN 오류표현 SELECT A.고객명,A.고객구분,B.고객주소 FROM 목적_Table A,주소_Table B WHERE A.고객상태='활동중' AND A.고객ID=B.고객ID(+) AND A.고객구분=B.고객구분(+) AND B.주소구분='거주' ▒ 상수값 있는 OUT JOIN 정상표현 SELECT A.고객명,A.고객구분,B.고객주소 FROM 목적_Table A,주소_Table B WHERE A.고객상태='활동중' AND A.고객ID=B.고객ID(+) AND A.고객구분=B.고객구분(+) AND B.주소구분(+)='거주'

SQL4Oracle 2023.03.10

LEFT JOIN

2011-08-01 09:00:57 SQL 4 Oracle 오라클용 sql 실무 ▒ LEFT JOIN SELECT A.고객명,A.고객구분,B.고객주소 FROM 목적_Table A LEFT JOIN BMTPERCUST B on A.고객ID=B.고객IDAND A.고객구분=B.고객구분 WHERE A.고객상태='활동중' ▒ LEFT JOIN과 같은 표현식 OUT JOIN SELECT A.고객명,A.고객구분,B.고객주소 FROM 목적_Table A,주소_Table B WHERE A.고객상태='활동중' AND A.고객ID=B.고객ID(+) AND A.고객구분=B.고객구분(+)

SQL4Oracle 2023.03.10

오라클 중복데이터 삭제하기 ROWID의 오해

2011-07-31 01:30:23 SQL 4 Oracle 오라클용 sql 실무 ▒ 오라클 중복데이터 삭제하기 ROWID의 오해 먼저 들어온 중복 데이터 삭제하기 DELETE FROM TABLE_NAME A WHERE ROWID < (SELECT MAX(ROWID) FROM TABLE_NAME B WHERE A.COL = B.COL 위 SQL에서 오류사항 2가지 1. 오라클의 ROWID는 순차적으로 insert 된 DATA의 순서란 뜻이 아니다. 말그대로 물리적인 ROWID에 DATA INSERT시 비어있는 ROW에 DATA가 들어간다 그래서 ROWID로 단순 최초 최후의 판단조건으로 부적절 하다. 2. 중복 데이터란 unique 키가 없는 상태에서 키값이 중복이란 것이지 전체 데이터가 중복이란 뜻이 아..

SQL4Oracle 2023.03.03