맨날 %로 검색만 하다보니 예전에 배웠는데 까먹은 것이 있었다.

 

글자수까지 포함해서 검색이 가능하다는것

 

예) NAME :

손자병볍

손흥민

손자

 

검색: 손으로 시작하는 3글자를 찾아라

 

WHERE NAME LIKE '손__' --(언더바 두개 넣음)

 

이렇게 하면 

 

*결과:손흥민

이런식으로 응용하면 굉장히 편리

 

WHERE NAME LIKE '손자__' --(언더바 두개 넣음)

 

이러면 

 

*결과: 손자병법

MERGE INTO 등록할_테이블_명 TB_NM

  USING(SELECT USER_NO FROM USER_TABLE WHERE USER_NO = '001') U_TB --> 검색할 쿼리

  ON (TB_NM.USER_NO = U_TB.USER_NO)  --> INSERT, UPDATE 조건

    WHEN MATCHED THEN -- 조건에 일치할경우 이하의 쿼리 실행 (UPDATE)

        UPDATE

        SET TB_NM.USER_NO = '001',

                TB_NM.USER_NAME = '유저명'

    WHEN NOT MATCHED THEN --> 조건이 일치하지 않을경우 이하의 쿼리 실행 (INSERT) 

        INSERT (TB_NM.USER_NO, TB_NM.USER_NAME)

        VALUES ('001', '유저명')

 

 

만약 한개의 테이블에서 검색/입력/수정을 할 경우에는 DUAL을 사용하는 편이 낫다.

============================ 이하 예시 ============================

 

MERGE INTO USER_TABLE A

  USING DUAL

       ON (A.USER_NO = '10')

WHEN MATCHED THEN

UPDATE SET

             DEPT_NO = '30'

WHEN NOT MATCHED THEN

INSERT (USER_NO, USER_NM, DEPT_NO)

VALUES('10', '유저명', '30')

 

 

1. 위의 query는 정상인데 ORA-00900 : SQL문이 부적합니다.  라는 오류가 발생한다면 

    JAVA에서 dataAccesser.update 를 사용한게 아니라 dataAccesser.query 를 사용했기 때문.

 

2. 한개의 테이블에서 검색/입력/수정할 경우에는 USING DUAL 을 사용, ON에 직접 조건 값을 입력해준다.

 

○출처ㅣm.blog.naver.com/PostList.nhn?blogId=bluefish115

오라클 랜덤 키생성 방법 2가지 FUNCTION(함수) 

 

첫번째 GUID

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

CREATE FUNCTION RANDOM_GUID

    RETURN VARCHAR2 IS

    RNG    NUMBER;

    N      BINARY_INTEGER;

    CCS    VARCHAR2 (128);

    XSTR   VARCHAR2 (4000) := NULL;

  BEGIN

    CCS := '0123456789' || 'ABCDEF';

    RNG := 15;

 

    FOR I IN 1 .. 32 LOOP

      N := TRUNC (RNG * DBMS_RANDOM.VALUE) + 1;

      XSTR := XSTR || SUBSTR (CCS, N, 1);

    END LOOP;

 

    RETURN XSTR;

  END RANDOM_GUID;

다음 함수는 sys_guid ()를 사용하여 uuid 형식으로 변환하는 방법입니다.

 

1

2

3

4

5

6

create or replace function random_uuid return VARCHAR2 is

  v_uuid VARCHAR2(40);

begin

  select regexp_replace(rawtohex(sys_guid()), '([A-F0-9]{8})([A-F0-9]{4})([A-F0-9]{4})([A-F0-9]{4})([A-F0-9]{12})''\1-\2-\3-\4-\5'into v_uuid from dual;

  return v_uuid;

end random_uuid;

 

입맛에 맞게 골라쓰기

 

 

 

자바 내장함수 RandomUUID() 이용하여 만들기 바로가기

https://mo-world.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%EB%9E%9C%EB%8D%A4-%ED%82%A4-%EC%83%9D%EC%84%B1-JAVA%EB%82%B4%EC%9E%A5-%ED%95%A8%EC%88%98-RAMDOMUUID-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0

복잡한거 다 때려치고

문법은 생략 개념만 익히자

같은 값이라 중복순위가 나올때

 

Rank - 1,2,3,3,5,6  - 공동3등 2명이라 5등부터 시작

 

dense rank - 1,2,3,3,4,5 - 공동 3등이 2명이라도 다음숫자(4)부터 시작

 

rank number - 1,2,3,4,5,6 - 3과 4의 순위가 같아도 랜덤하게 순위부여

 

 

 

 

+ Recent posts