DB33 [Toad]토드에서 select 후 그리드에서 바로 수정하기 oracle을 사용할 때 토드를 많이 사용한다. 데이터를 변경할 때 update문을 날리는데 이게 은근히 귀찮다..... 데이터 양이 많지 않고 공통코드가 아니라 insert into 문을 기록해둘 필요가 없는 경우, 그리드에서 바로 수정하는 것이 더욱 빠르고 편리하다. 방법은 두 가지이다. 1) SELECT ROWID, A.* FROM TABLE_NM WHERE ... ; 2) EDIT TABLE_NM WHERE ... ; 하단 조회 결과 그리드에서 원하는 컬럼을 변경하고 COMMIT하면 즉시 데이터가 변경된다. DB/Toad 2022. 2. 13. [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. [MyBatis] #{}와 ${}의 차이점 결론만 간단히 얘기하자면 #{}는 ''가 씌워진 형태가 반환되고, ${}는 ''가 씌워지지 않은 형태가 반환된다. 1 2 3 4 5 SELECT CODE, NAME FROM TP_TABLE WHERE CODE = #{CODE} AND NAME = #{NAME} cs 이 경우 아래와 같은 결과가 출력된다. 1 2 3 4 5 SELECT CODE, NAME FROM TP_TABLE WHERE CODE = 'ABC' AND NAME = 'ABCD' cs 1 2 3 4 5 SELECT CODE, NAME FROM TP_TABLE WHERE CODE = ${CODE} AND NAME = ${NAME} cs 아래와 같은 결과가 출력된다. 1 2 3 4 5 SELECT CODE, NAME FROM TP_TABLE W.. DB/myBatis 2021. 11. 24. [Oracle] N번째 행 가져오기. N번째 행 추출 오라클에서 N번째 ROW의 데이터를 가져오는 방법이다. 1번째 행 가져오기 1 2 3 4 5 6 7 8 SELECT * FROM ( SELECT ROWNUM AS NUM, CODE FROM TP_TABLE ) X WHERE X.NUM = 1; cs 2번째 행 가져오기 1 2 3 4 5 6 7 8 SELECT * FROM ( SELECT ROWNUM AS NUM, CODE FROM TP_TABLE ) X WHERE X.NUM = 2; cs 위와 같이 인라인뷰를 사용해서 N번째 행의 데이터를 가져올 수 있다. DB/Oracle 2021. 11. 24. JDBC-11001:Subquery returned a tuple where a scalar value was expected. JDBC-11001:Subquery returned a tuple where a scalar value was expected. 티베로에서 패키지를 실행시키는데 자꾸 이런 에러가 발생해서 뭐가 잘못된거지 했는데.... INSERT( ) SELECT FROM ... 이렇게 생긴 쿼리에서 발생하는 에러였다. SELECT 되는 ROW가 중복된 값으로 여러개 조회되고 있었다.. 즉 데이터 중복 관련된 문제였던 것 같다. DB/Tibero 2021. 11. 24. [Oracle] 오라클 insert 자동 채번 (MAX+1) 오라클에서 자동 채번을 할 때 MAX+1을 사용하는 경우가 종종 있다. NVL과 MAX 함수를 이용하면 간단하게 사용할 수 있다. 사용 방법은 아래와 같다. SELECT NVL(MAX(컬럼이름), 0) +1 FROM DUAL; 1 2 3 4 5 6 7 8 9 10 11 12 INSERT INTO TP_TABLE( SEQ, CODE, NAME ) VALUES( (SELECT NVL(MAX(X.SEQ), 0) + 1 FROM TP_TABLE X), 'A01', 'TEST' ) Colored by Color Scripter cs DB/Oracle 2021. 11. 24. JDBC-11029:No function matches the specified argument(s). 티베로 사용 중 다음과 같은 에러가 발생하는 경우가 많다. 티베로 공식 에러 참고서를 살펴보면 Cause No function matches the specified list of arguments. Action Check the argument data type. 원인: 지정된 인수 목록과 일치하는 함수가 없습니다. 해결: 데이터 유형을 확인 하십시오. 데이터 타입이 일치하지 않는 데이터를 넣을 때 생기는 경우가 많다.. 이 외에도 다양한 이유가 있지만 대체로 그렇다..... DB/Tibero 2021. 11. 18. 오라클에서 Function, Procedure 내용 전체 검색하기 오라클에서 PROCEDURE, FUNCTION의 내용을 전체 검색할 때 사용하는 쿼리이다. /*Procedure검색*/ SELECT * FROM USER_SOURCE WHERE TYPE = 'PROCEDURE' AND TEXT LIKE '%찾고자하는 텍스트%' ORDER BY NAME, LINE /*Function검색*/ SELECT * FROM USER_SOURCE WHERE TYPE = 'FUNCTION' AND TEXT LIKE '%찾고자하는 텍스트%' ORDER BY NAME, LINE 출처:삽질LEE의 아이티 이야기 DB/Oracle 2021. 10. 29. 이전 1 2 3 다음