DB/ORACLE 16

[오라클 - 도커] 도커로 오라클 23ai 설치하기

회사 PC에 오라클을 설치해서 이것저것 테스트 해보려 하는데..회사 PC 라서 그런지(보안프로그램 등등) 오라클 설치가 쉽지 않다..물론 간단한 SQL 테스트라면 아래 LiveSQL에서도 충분하지만 이번엔 도커로 설치해보려 한다. https://livesql.oracle.com/  Oracle Live SQL2,193,170 scripts, 6,269 likes, 1,078 published scripts, 4,971 new scripts created in the last 7 days.livesql.oracle.com 먼저 도커를 설치한다.아래 주소에 설치 메뉴얼이 있으니 참고해서 설치하자.https://docs.docker.com/desktop/install/windows-install/ Instal..

DB/ORACLE 2024.06.24

[오라클] DB 관리 체크 항목

참고용.. 구분 점검내용 점검사항 비 고 일일 점검 Oracle Instance 상태 확인 Oracle Instance service 상태 확인 SQL>select insatnce_name, status from v$instance; Listener 상태 확인 listener가 정상 service 중인지 확인 $ lsnrctl status Oracle S/W, Archive 공간 확인 Oracle 설치 Directory와 Archive Dest의 Free 공간 확인 $ df -k (HP서버일 경우 bdf) Resource Check Oracle에 설정된 Parameter에 따라 resource가 부족한지 확인 SQL> select * from v$resource_limit; Backup 확인 Oracle..

DB/ORACLE 2023.07.31

[Oracle - 에러] ORACLE INSERT FETCH ROWS 시 ORA-00918 오류

PL/SQL: ORA-00918: 열의 정의가 애매합니다 동료 개발자분이 프로시저의 insert 구문 중 작성하던 중 ORA-00918 에러가 발생했다. 쿼리는 아래와 같았다. INSERT INTO TABLE_1 ( COL1 , COL2 , COL3 , COL4 , FRST_REG_DT , FRST_RGTR_DSTN_NO , FRST_REG_IP , CHG_REG_DT , CHG_RGTR_DSTN_NO , CHG_REG_IP ) SELECT P_PROCEDURE_PARAM_1 -- 프로시저 입력 변수 1 , P_PROCEDURE_PARAM_2 -- 프로시저 입력 변수 2 , T.COL1 , T.COL2 , SYSDATE , P_PROCEDURE_PARAM_3 -- 프로시저 입력 변수 3 , P_PROCE..

DB/ORACLE 2022.12.22

[Oracle - PL_SQL] 오라클 FUNCTION GOTO 사용하기

오라클 FUNCTION에서 C언어의 GOTO와 같은 기능을 사용할 수 있다. 예를 들어 FUNCTION에 TEST라는 변수가 NULL일 시 라는 조건이 있을 때 IF TEST IS NULL THEN -- 여기에 사용한다. END IF; 위의 조건을 만족할 시 FUNCTION의 끝으로 보내고 싶은 경우라면 아래와 같이 사용한다. IF TEST IS NULL THEN GOTO CODE_END; --CODE_END 라는 위치로 보내버린다. END IF; ~~ ~~ ~~ -- CODE_END라는 부분을 직접 지정한다. 이름은 병경되도 상관없다.

DB/ORACLE 2022.09.26

[Oracle - PL_SQL] 오라클 FUNCTION, PROCEDURE EXCEPTION 활용법

오라클 FUNCTION이나 PROCEDURE 내부에서 자바의 TRY CATCH과 비슷하게 EXCEPTION을 활용할 수 있다. 먼저 FUNCTION 내부에서 EXCEPTION으로 사용할 변수를 생성한다. FUNCTION F_TEST ( P_TEST1 VARCHAR2 , P_TEST2 VARCHAR2 ) RETURN VARCHAR2 IS V_RESULT VARCHAR2(10) := 'FALSE'; EXCEPTION_1 EXCEPTION; -- EXCEPTION 명을 EXCEPTION_1으로 지정했다. ~~ ~~ 해당 EXCEPTION을 내가 원하는 부분에 로직으로 추가하여 EXCEPTION을 발생시킬 수 있다. 기본 EXCEPTION 문법에 WHEN 절에 추가하면 된다. 만약 EXCEPTION에서 WHEN..

DB/ORACLE 2022.09.26

[Oracle - PL_SQL] 오라클 FUNCTION 사용법

FUNCTION은 기본적으로 입력값과 출력값이 있는 사용자 정의 함수이다. 출력값은 하나이며, 여러개 로우를 출력하고 싶을 시에는 출력값에 대한 타입을 수정하여 사용한다. FUNCTION F_TEST ( P_TEST1 VARCHAR2 , P_TEST2 VARCHAR2 ) RETURN VARCHAR2 IS V_RESULT VARCHAR2(10) := 'FALSE'; -- 위는 선언 부분. V_RESULT라는 변수를 생성하여 RETURN 값으로 사용할 것이다. BEGIN -- BEGIN 아래부터 실제 FUNCTION 내부에서 이루어 질 동작을 선언한다. ~~ ~~ RETURN V_RESULT; -- FUNCTION의 결과값 END F_TEST; -- FUNCTION의 끝을 지정해야 한다. 보통 하나의 PAC..

DB/ORACLE 2022.09.26

콤마(,) 로 이루어진(LISTAGG) 문자열 ROW로 변환하기(oracle, mariadb)

LISTAGG과 같은 방식으로 여러 ROW를 하나의 ROW를 합치는 경우가 있다. 그것의 반대의 경우에 사용하는 쿼리다. 1 . 먼저 오라클의 경우 다음과 같다. (REGEXP_SUBSTR 인수에 최대 4개 입력가능한 Mysql 버전이라면 Mysql도 동일할 듯) B부분은 몇개까지 ROW로 풀어낼 것인지를 나타내는 임시 테이블이다. WITH TMP(NO, YEAR, CODE) AS ( SELECT '2022027290', '2022', '2022000011,2022000022, 2022000023' FROM DUAL ) SELECT A.NO , A.YEAR , REGEXP_SUBSTR(REPLACE(A.CODE, ' ', ''),'[^,]+', 1, B.LV) AS CODE FROM TMP A , (SE..

DB/ORACLE 2022.09.26