DB/Oracle22 [Oracle] 3자리 콤마찍기 오라클에서 숫자 3자리 마다 콤마 찍는 방법 숫자인 경우 1 2 SELECT TO_CHAR('1000000', 'FM9,999,999') FROM DUAL; //1,000,000 cs 화폐인 경우 1 2 SELECT TO_CHAR('1000000', 'L9,999,999') FROM DUAL; // \1,000,000 cs DB/Oracle 2022. 5. 12. [Oracle] ORA-06550: PLS-00103: 심볼 ""를 만났습니다 프로시져 호출 시 , 빼먹으면 발생한다. call pr_array(a,b c); =>call pr_array(a,b,c); DB/Oracle 2022. 5. 12. MAX값에서 +1하는데 9이상 증가 안할 때 MAX +1 했는데 9이상 안올라가질 때가 있습니다. 원인은 number max와 string max차이점 입니다. 9, 10 중 number면 10이 더 높지만 string이면 맨 앞글자가 9가 높은거라 9가 나옵니다. 따라서 Type을 NUMBER로 변경해주시면 됩니다 ! DB/Oracle 2022. 5. 2. [Oracle] 숫자, 문자 데이터만 추출하기 숫자, 문자로만 된 데이터를 찾을 때 사용하는 방법이다. 나는 REGEXP_LIKE 함수를 사용할 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT 컬럼명 FROM 테이블이름 WHERE REGEXP_LIKE(컬럼, '[^0-9]') //숫자 외의 것이 포함된 것 SELECT 컬럼명 FROM 테이블이름 WHERE NOT REGEXP_LIKE(컬럼, '[^0-9]') //숫자외의 것이 포함된 것이 아닌 것 → Only 숫자 SELECT 컬럼명 FROM 테이블이름 WHERE REGEXP_LIKE(컬럼, '[0-9]') //숫자가 포함된 것 SELECT 컬럼명 FROM 테이블이름 WHERE NOT REGEXP_LIKE(컬럼, '[0-9]') //숫자가 포함된 것이 .. DB/Oracle 2022. 5. 2. [Oracle] SELECT 결과를 INSERT하기 오라클에서 데이터를 삽입할 때 insert를 사용한다. INSERT는 한줄의 데이터만 삽입가능한데, SELECT한 결과를 INSERT 할 수도 있다. 1. 모든 컬럼 복사 INSERT INTO 삽입할 테이블명 SELECT * FROM 불러올 테이블명 예시 1 2 3 INSERT INTO username_history SELECT * FROM user; cs 2. 특정 컬럼 복사 INSERT INTO 삽입할 테이블명 (컬럼1, 컬럼2, ...) SELECT 컬럼1, 컬럼2, ... FROM 불러올 테이블명 예시 1 2 3 INSERT INTO username_history (user_id, user_name) SELECT user_id, user_name FROM user; cs DB/Oracle 2022. 5. 2. [Oracle]LPAD, RPAD 함수(공백 채우기, 0 채우기) 문자 길이는 고정이고 왼쪽부터, 혹은 오른쪽부터 특정 문자를 채워줘야 하는 경우가 있다. 나는 채번할 때 이 기능이 필요했는데 이때 LPAD 함수를 사용했다. 먼저 정의 LPAD 함수란 지정한 길이만큼 왼쪽부터 특정 문자로 채워주는 함수. LPAD(값, 문자 길이, 채움 문자) 예시: 1 2 3 4 5 6 SELECT 55 AS COL1, LPAD(55, 7) AS COL2, LPAD(55, ' ') AS COL3, LPAD(55, 7, '0') AS COL4, LPAD(55, 7, 'A') AS COL5 FROM DUAL; cs 결과: 위의 결과와 같이 세번째 인자인 채움 문자 칸에 아무 값도 넣지 않으면 디폴트 값으로 공백이 들어간다. RPAD 함수란 지정한 길이만큼 오른쪽부터 특정 문자로 채워주는 .. DB/Oracle 2022. 3. 15. [Oracle] 계층형 쿼리 쉬운 정리(START WITH CONNECT BY) 오라클 사용 시 계층형 쿼리를 종종 사용하게 된다. LEVEL 어쩌구 CONNECT BY 어쩌구.. 처음 마주하면 굉장히 복잡하고 어려워보인다..... 몰라서 검색해봐도 무슨 말인지 이해하기 어려운 설명들이 많다. 무조건 이해를 위주로 한 쉬운 설명을 시작 ! 먼저 계층형 쿼리가 무엇인지 알아보자. 계층형 쿼리란? 테이블에 계층형 구조 즉, 수직적 구조가 존재할 때 이를 조회하기 위한 쿼리이다. 그림으로 쉬운 설명. 회사 조직도를 예시로 들어보자. '회사'는 최상위계층이고, 회사를 중심으로 개발부, 경영지원부, 영업부 세 부서로 나뉜다. 계속해서 부서를 중심으로 하위 계층이 생성되어 있다고 가정하자. 이를 테이블로 나타내면 아래와 같다. 부서번호는 고유식별자로 Primary Key가 된다. START W.. DB/Oracle 2022. 3. 6. [Oracle] 특정 값 우선 정렬하기 ORDER BY DECODE/ORDER BY CASE 데이터를 정렬할 때 일반적으로 ORDER BY 함수를 사용한다. 하지만 더 복잡한 정렬 방식에는 적합하지 못한 함수이다. 가령 정렬을 사용하되, 특정 데이터 값은 가장 상단에 보여주고 나머지 데이터만을 정렬해야 할 때는 ORDER BY를 사용할 수 없다. 이해를 돕기위해 예제를 보자. 위와 같은 데이터가 존재한다고 가정하자. 이 데이터를 유통기한 별로 정렬하면 1 2 3 SELECT STOCK_CD, STOCK_NM, EXPI_DT, DELV_STATUS FROM ORDER_TABLE ORDER BY EXPI_DT; cs 이렇게 정렬이 가능하다. 그런데 여기서 배송 완료된 상품은 최상단으로 올리고 나머지 데이터만 정렬하고자 한다면? ORDER BY DECODE 를 사용하면 가능하다. 예시를 드는 것이 가.. DB/Oracle 2022. 2. 9. [Oracle] MAX +1에서 값이 10이상 증가하지 않는 경우 쿼리를 생성할 때..... 간혹 MAX+1을 했는데 10에서 값이 더이상 증가하지 않는 경우가 있다. 원인은 데이터 타입이다. 데이터 타입이 문자 타입인 경우, 11과 9 중 맨 앞자리로 크기를 비교한다. 따라서 max값으로 9를 반환한다. 해결: TO_NUMBER()를 사용하자. ex. NVL(MAX(TO_NUMBER(value)), 0) +1 DB/Oracle 2022. 2. 8. [Oracle]컬럼명으로 테이블 찾기 123SELECT COLUMN_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE '%컬럼명%';cs DB/Oracle 2022. 2. 8. [Oracle]테이블 코멘트(COMMENTS) 조회 Oracle에서 테이블의 comments를 조회하는 방법이다. 1 2 3 SELECT * FROM ALL_COL_COMMENTS WHERE COMMENTS LIKE '%검색어%' cs 시스템뷰는 ALL_COL_COMMENTS, USER_COL_COMMENTS, DBA_COL_COMMENTS 모두 사용할 수 있다. ALL_COL_COMMENTS 현재 사용자가 엑세스 할 수 있는 테이블에 대한 컬럼 코멘트 조회 USER_COL_COMMENTS 현재 사용자의 스키마에 있는 테이블에 대한 컬럼 코멘트 조회 DBA_COL_COMMENTS 데이터베이스의 모든 테이블의 컬럼 코멘트 조회 참조:https://gent.tistory.com/206 DB/Oracle 2022. 2. 8. [Oracle] 오라클 컬럼(Column) 추가, 삭제 방법 (컬럼 순서 변경) [컬럼 추가] ALTER TABLE test ADD code VARCHAR(5) DEFAULT '-' NOT NULL; ALTER TABLE 테이블명 ADD 컬럼명 데이터 타입 기본값 NULL허용(생략 가능) ; [컬럼 삭제] ALTER TABLE test DROP COLUMN code; ALTER TABLE 테이블명 DROP COLUMN 컬럼명; [컬럼 순서 변경(오라클 12c이상)] INVISIBLE(숨김), VISIBLE(보이기) 속성을 사용한다. 옮기고자 하는 컬럼 위치의 오른쪽(?) 컬럼을 모두 INVISIBLE 시킨 뒤 VISIBLE 해주면 된다 ! 예시로 보는 게 이해가 쉽다. REMARKS를 NAME의 앞으로 옮기고 싶은 경우. 초록색으로 표시한 항목들을 INVISIBLE/VISIBLE 처.. DB/Oracle 2022. 1. 5. 이전 1 2 다음