본문 바로가기

전체 글218

Oracle Stored Procedure 2장(지역변수 선언 및 프로세스) CREATE OR REPLACE PROCEDURE TESTPROCEDURE ( v1 IN NVARCHAR2 := 'no Data', v2 OUT NVARCHAR2, v3 IN OUT NVARCHAR2)AS strQuery NVARCHAR2(300); deptNo NVARCHAR2(2); v_cursor SYS_REFCURSOR;BEGIN /* !! 기본 상식 !! : 문자열 조합은 +가 아닌 || 로 수행 : 변수 초기화 시 := 로 초기화 */ /* 지역변수 선언 및 익명 블록 : Oracle Procedure에서 지역변수를 선언하기 위해서는 DECLARE 및 익명 블록이 필요하다. */ DECLARE s1 NVARCHAR2(20) := 'aa'; s2 NVARCHAR2(20) :.. 2024. 7. 11.
Oracle Stored Procedure 1장(프로시저 생성 및 저장) CREATE OR REPLACE PROCEDURE TESTPROCEDURE (/* CREATE PROCEDURE : 새 Procedure를 생성하며 중복된 이름이 존재 할 경우 에러 발생. CREATE OR REPLACE PROCEDURE : Procedure를 생성하며 중복된 이름이 존재할 경우 덮어씌운다.*//* Procedure 호출 시 전달할 파라미터를 선언. IN, OUT, IN OUT 총 3개의 변수를 선언 할 수 있다. 생략할 경우 IN 변수로 선언된다. IN : Procedure 호출 시 해당 변수의 값이 초기화 되며 CONST 상수로 값 변경이 불가능하다. : 호출 시 전달받은 데이터가 없을 경우 default value로 변수를 초기화 하며 생략 가능. OU.. 2024. 7. 10.
Oracle ROW_NUMBER() OVER() ROWNUM과는 다르게 OVER에 파라미터를 전달하여 ROWNUMBUR를 적용할 기준을 정할 수 있다. 아래 두 사진의 차이점을 비교하여 ORDER BY / ROWNUM 혼용 사용과 ROW_NUMBER() OVER()의 차이를 알아보자. 1) ROW_NUMBER() OVER() 사용SELECT ROW_NUMBER() OVER(ORDER BY EMPNO) AS RN, -- ROWNUM을 EMPNO가 ORDER BY된 결과로 적용해줘~ 로 보면 된다. B.*FROM DEPT AJOIN EMP BON A.DEPTNO = B.DEPTNO; 2) ORDER BY / ROWNUM 혼용 사용SELECT ROWNUM, B.*FROM DEPT AJOIN EMP BON A.DEPTNO = B.DEPTNOORDER BY E.. 2024. 7. 10.
Oracle ROWNUM [ ROWNUM ] : 조회 결과 순으로 ROWNUM을 부여한다. 같은 레벨에서 ORDER BY와 함께 사용 시 원하지 않는 결과가 나올 수 있다. 이러한 경우는 subQuery로 처리하여 해결이 가능하다. & ORDER BY없이 ROWNUM 조회 시SELECT ROWNUM, B.*FROM DEPT AJOIN EMP BON A.DEPTNO = B.DEPTNO; & ORDER BY, ROWNUM 함께 사용. SELECT ROWNUM, B.*FROM DEPT AJOIN EMP BON A.DEPTNO = B.DEPTNOORDER BY EMPNO; & subQuery를 통해 ORDER BY가 적용 된 상태로 ROWNUM 적용SELECT ROWNUM, A.*FROM( SELECT B.* FROM DEPT A .. 2024. 7. 10.