본문 바로가기

프로그램

ORACLE 12C LISTAGG 문자열합치기 중복제거 wm_concat 으로 꿀발다가 ORACLE10 => 12 로 변경되면서 일괄로 문자열 합치기를 수정했던 적이 있다. WM_CONCAT => LISTAGG 로 변경했고 WM_CONCAT 은 중복제거를 DISTINCT 로 했지만 LISTAGG 는 DISTINCT 가 안되니깐 (19 부터는 된다고 합니다.) 결국 구글링 통해 정렬을 이용하여 REGEXP_REPLACE 를 이용하여 처리 했다. 항수를 한개 만들고 PDUP_STR VARCHAR2 , PDIV VARCHAR2 ) RETURN VARCHAR2 AS BEGIN RETURN REGEXP_REPLACE(PDUP_STR, '([^' || PDIV || ']+)(' || PDIV || '\1)*(' || PDIV || '|$)', '\1\3'); 로 처리했.. 더보기
[MSSQL]TOP 이용하여 두번째, 세번째 글 구하기 TOP 이용하여 두번째, 세번째 글 구하기 MSSQL 이고 ROW_NUMBER 가 안되는 상화엥서2번쨰 , 3번쨰 항목을 읽어야 하는 미션이 생겨 처리함 TOP 이용하여 3개를 읽어 첫번째 것 제외하고 가져온 것의 TOP 1을 가져오게 함두번째 항목인 경우 ORDER BY CUS_TAB_NO ASC세번쨰 항목인 경우 ORDER BY CUS_TAB_NO DESC SELECT TOP 1 *FROM (SELECT TOP 3 *FROM CUS_TAB AWHERE CUS_TAB_NO = @CUS_TAB_NOORDER BY A.CUS_TAB_NO ASC) BWHERE B.CUS_TAB_NO NOT IN (SELECT MIN(CUS_TAB_NO)FROM CUS_TAB AWHERE CUS_TAB_NO = @CUS_TA.. 더보기
[ORACLE]ORA-00980 오류 발생 ORA-00980 오류 발생 정말 완전한 삽질을 하여 기록해놓음 다른 물리적 DB를 DBLINK 로 접근하고 있는 상황임 SELECT는 문제 없이 되나 프로시져 안의 쿼리에서만 ORA-00980 오류가 발생함 구글링을 해보니 원인으로는1번1. A USER 로 테이블 A 생성2. A USER 로 시노님을 B USER 로 생성3. A USER 가 테이블 A DROP 후 다시 생성4. B USER 가 테이블 A 접근 시 ORA-00980 발생 해결방안 : A USER가 시노님 재생성 2번1. A DB 에 테이블 A 존재2. B DB 에서 A DB 의 DBLINK 로 테이블 조회3. C DB 에서 B DB 의 DBLINK 를 통해 테이블 A 를 패키지 내에서 사용하려고 할 경우 ORA-00980 발생 해결방안 .. 더보기
[ORACLE]CONNECT_BY_ISCYCLE CONNECT_BY_ISCYCLE CONNECT BY 중복참조를 체크해주는 함수CONNECT BY NOCYCLE 를 사용할 경우에만 사용가능 중복참조의 경우 "ORA-01436 CONNECT BY의 루프가 발생되었습니다." 발생 - 정상적인 CONNECT BY WITH CV_MST AS ( SELECT '0001' AS P_ITEM_NO, '0003' AS C_ITEM_NO, 'PARENT' AS ITEM_NM FROM DUAL UNION ALL SELECT '0003' AS P_ITEM_NO, '0005' AS C_ITEM_NO, 'CHILD1' AS ITEM_NM FROM DUAL UNION ALL SELECT '0003' AS P_ITEM_NO, '0006' AS C_ITEM_NO, 'CHILD2'.. 더보기
[MSSQL]SQL Server Management Studio 에서 엑셀로 EXPORT 하기 SQL Server Management Studio 에서 엑셀로 EXPORT 하기 1. DATABASE 선택 – 오른버튼 – 작업 – 데이터내보내기 선택 2. 현재 데이터 원본 비번 입력 3. 대상에 EXCEL 선택 후 미리 만들어둔 빈 엑셀파일 선택 4. 전송데이터를 지정할 쿼리 작성- 전체가 아닌 일부만 추출 시 사용함 5. 쿼리 작성 6. 매핑편집 클릭 후 매핑 작업함 7. 매핑팝업에서 필드별 플드값 설정 - DATE 유형의 경우 VARCHAR 나 DATETIME 중 선택해야함- DATETIME으로 했을 시 오류인 경우 VARCHAR 에 12자리 정도로 처리함 8. 즉시실행 누른 후 마침 진행 함 9. 오류 발생 시 지정한 대상으로 매핑하는 CREATE 문이 잘못되었거나 설정한 필드 유형이 잘못된 .. 더보기
[ORACLE]GROUP BY GROUPING SETS [ORACLE]GROUP BY GROUPING SETS 통계 쿼리 작성 시 동일쿼리를 GROUP BY 에서 넣고 빼고 차이로 UNION ALL 로 처리하였다. 이 쿼리가 속도가 나지 않아 검색을 해보니 GROUPING SETS 명령어가 제공되고 있고 속도도 괜찮다고 해서 변경해보았다. 효과는 꽤 좋았다. GROUP BY GROUPING SETS 뒤에 그룹핑 할 그룹들을 넣으면 됨 GROUPING_ID 명령어를 통해 NULL 인 항목이 있을 경우 값을 반환받을 수 있다.(NULL갯수 * 2 - 1 인듯함) 샘플 WITH CV_MST AS ( SELECT '한국' AS COUNTRY, '서울' DOMAIN, 'M' AS SEX, '승구' AS USER_NM, '1000' AS AMT FROM DUAL UNI.. 더보기
[ORACLE]utl_tcp 로 open_connection 한 애들 모두 없앨 경우 - UTL_TCP.Close_All_Connections utl_tcp 로 open_connection 한 애들 모두 없앨 경우 UTL_TCP.Close_All_Connections(); 실행 더보기
[javascript]spread operator 확인 spread operator 확인 함수 호출 시 사용시function test(...args) {console.log(args);} test('1', '2', '3');//아 이건 rest parameter 라고 하네-_-; 난 이건지 알았음 args 가 배열로 넘오온 것을 확인 가능function test02(a, b, c) {console.log(a);console.log(b);console.log(c);}var args = [1, 2, 3, 4, 5];test02(...args); 배열 리터럴 용[...args, 4, 5, 6]destructuring 에서 사용 시 [a, b, ...args] = [1, 2, 3, 4, 5, 6]; url : https://developer.mozilla.org/k.. 더보기
[JAVASCRIPT]Object.assign 문법 확인 Object.assign 문법 확인 열거할 수 있는 하나 이상의 소스 오브젝트로 부터 타켓 오브젝트로 프로퍼티들을 복사하는데 사용 Object.assign(target, ...sources) 참조를 복사한다고 함=> 원본 변경 시 같이 변경됨 다른 방법 JSON.parse(JSON.stringify(a)) 인듯함 결론은 병합을 하는 것 이였음 url : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/assign 소스 더보기
[JAVASCRIPT]default function parameter 문법 확인 javascript default function parameter 문법 확인 ES6에서 신규로 생성됨함수에 parameter에 기본값을 넣고 싶을 경우 그전 function test(a, b) {if(!b) b = 1;orb = b || 1;orb = typeof b !== 'undefined' ? b : 1;return a*b;} es6 function test(a, b = 1) {return a * b;} 호출 시 평가=> 전달된 obj가 호출 시 에만 사용된다는 뜻 같음function app(val, arr = []) {arr.push(val);return arr;} app(1); //[1]app(2); //[2] 함수도 동일하다고 IE 지원안함크롬 49, 파폭 15.0 이상 이라고 함 url :.. 더보기