본문 바로가기

728x90

Programming

(32)
Merge MERGE INTO TARGET_TABLE --update 또는 insert할 table USING SOURCE_DATA --활용할 data로 table 또는 subquery로 정의할 수 있음 --SOURCE_DATA를 주체로 TARGET_TABLE를 inner join한다고 생각하면 됨 ON ( TARGET_TABLE.COL1 = SOURCE_DATA.COL1 AND TARGET_TABLE.COL2 = SOURCE_DATA.COL2) --inner join이 된 경우 UPDATE WHEN MATCEHED THEN UPDATE SET TARGET_TABLE.COL3 = SOURCE_DATA.COL3 , TARGET_TABLE.COL4 = SOURCE_DATA.COL4 [WHERE ..] [DELETE W..
정규 표현식 메소드 및 예시 정규 표현식 리터럴 1)슬래시로 패턴을 감쌈 2)스크립트를 불러올 때 컴파일되므로, 패턴이 바뀔 일이 없을때 사용하면 성능 향상 const re = /ab+c/g; RegExp 객체의 생성자 1)String처럼 작성 2)런타임에 컴파일되므로, 패턴이 바뀔 수 있을때 사용할 것 const re = new RegExp('ab+c', 'g'); regexObj.exec(str) 1)일치 탐색을 수행한 결과를 배열 혹은 null로 반환 및 regExpObj.lastIndex를 처음 일치하는 문자열의 마지막 문자 인덱스로 설정 2)탐색을 실패하면 null을 반환, regExpObj.lastIndex를 0으로 설정 3)RegExp생성자의 두 번째 파라미터인 플래그값이 g 또는 y일 경우 regExpObj.lastI..
조회된 데이터리스트 분류 단계별 필터링 예시 LinkedDataList.setColumnFilter를 활용 dataCollection script removeColumnFilter를 넣지 않으면 필터 조건이 계속 and 로 추가되는 것 같음 newValue가 "" 일때는 전체로 처리 아래 분류들도 filter를 적용하기 위해 switch문 중간에 break;를 뺌 // 초기화 부분 sch_largeCategory.setNodeSet("data:dlt_codes", "largeCategoryName", "largeCategory"); sch_wkspCd.setNodeSet("data:linked_dlt_codes", "mediumCategoryName", "mediumCategory"); sch_wkgdCd.setNodeSet("data:linked..
Cursor 사용 방법 3가지 1.커서의 내용을 미리 정의 %ROWTYPE: 테이블의 행을 나타내는 레코드 타입 DECLARE TYPE MY_TYPE IS RECORD( NUM NUMBER, NAME VARCHAR2(12) ); MY_REC MY_TYPE; CURSOR MY_CUR IS SELECT 1 NUM, '홍길동' NAME FROM DUAL UNION ALL SELECT 2 NUM, '신데렐라' NAME FROM DUAL; BEGIN OPEN MY_CUR; LOOP FETCH MY_CUR INTO MY_REC; EXIT WHEN MY_CUR%NOTFOUND; DBMS_OUTPUT.PUT_LINE(MY_REC.NUM || '_' || MY_REC.NAME); END LOOP; CLOSE MY_CUR; END; DECLARE MY..
정규 표현식 문자클래스(Character classes) 의미 . 행끝 문자를 제외한 모든 단일 문자와 일치 \d 임의의 숫자와 일치, [0-9]에 해당 \D 숫자가 아닌 모든 문자와 일치, [^0-9]에 해당 \w 밑줄을 포함한 영숫자 문자와 일치, [A-Za-z0-9_]에 해당 \W 밑줄과 영숫자가 아닌 모든 문자와 일치, [^A-Za-z0-9_]에 해당 \s 단일 공백 문자와 일치, [ \f\n\r\t\u00a0\u1680\u2000-\u200a\u2028\u202f\u205f\u3000\ufff]에 해당 \S 공백 이외의 단일 문자와 일치, [^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]에 해당 \t 수평 탭과 일치 \r ..
JavaScript Array Array.from(arrayLike[, mapFn[, thisArg]]) 1)유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만듭니다. Hamburger Pizza spaghetti Array.find(callback[, thisArg]) 1)주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환합니다. 그런 요소가 없다면 undefined를 반환합니다. array.find(e => e > 3); Array.findIndex( callback(element[, index[, array]])[, thisArg] ) 1)주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으..
JavaScript loop const foods = ["hamburger", "pizza", "spaghetti"]; // in은 객체의 속성 또는 배열의 인덱스(속성)를 반환 for(let i in foods){ console.log(i); // "0", "1", "2" } // of는 배열의 원소를 반환 for(let i of foods){ console.log(i); // "hamburger", "pizza", "spaghetti" } const food = { name: "Hamburger", price: 3900, maker: "Frank Burger", }; // 객체의 내용 출력하기 // name Hamburger // price 3900 // maker Frank Burger // 방법1: in 활용 for(cons..
JavaScript destructuring destructuring 1)배열의 값 또는 객체의 속성을 별개의 변수로 정의 1-1)객체의 디스트럭처링 var emp = { name: "Wanda", age: 24, }; // 객체에서 변수 생성하기 var name = emp.name; var age = emp.age; // 위와 동일한 동작을 함 const {name, age} = emp; // emp.name을 가져옴 // 변수명은 nm이고 기본값을 "Vision"으로 설정 const {name:nm = "Vision"} = emp; 1-2)배열의 디스트럭처링 const emp = ["Wanda", "Vision", "Tony"]; // emp1, emp2에 순서대로 emp배열의 값이 들어간다. const [emp1, emp2] = emp; //..
JavaScript arrow function expression 1.function과 매개변수 부분 위치를 바꾼다. 2.function 을 => 로 바꾼다. 3.매개변수가 하나만 있으면 괄호를 생략할 수 있다. 4.한 줄의 코드이면 return 및 함수를 감싼 중괄호를 생략할 수 있다. const greeting = function(name){ return "hello " + name; }; // 1.function과 매개변수 부분 위치를 바꾼다. // 2.function 을 => 로 바꾼다. const greeting = (name) => { return `hello ${name}`; }; // 3.매개변수가 하나만 있으면 괄호를 생략할 수 있다. const greeting = name => { return `hello ${name}`; }; // 4.한 줄의 코드..
JavaScript var, let, const var 1)함수 스코프, for루프 안에서 선언하면 for루프 밖에서 사용가능 2)정의되기 전에 접근가능하나 값에는 접근불가 undefined let 1)블록 스코프, for루프 안에서 선언하면 for루프 밖에서 사용불가 2)정의되기 전에 접근불가 const 1)블록 스코프, for루프 안에서 선언하면 for루프 밖에서 사용불가 2)정의되기 전에 접근불가 3)재할당을 통해 값이 변경될 수 없고, 다시 선언될 수도 없다. ※ 기본적으로 const를 사용하고 값을 재할당하는 경우에 let을 사용하는 것을 추천 TDZ(Temporal dead zone) 1)일시적 비활성 구역 2)var, let, const로 선언한 변수는 호이스팅이 되지만, var는 정의되기 전에 접근가능하나 let, const는 접근하면 ..

728x90