코드 저장소

공부에는 끝이 없다!

DB/Oracle 3

SQL Developer를 이용한 Oracle DB Export

이전에 마이그레이션 해두었던 DB를 다른 서버로 옮길 일이 생겼다. 어떻게 할까 하다가 그냥 DB를 통째로 Export해서 다른 서버로 옮기는게 제일 편할것 같아서 Export를 하는 방법을 찾게 되었다. MSSQL은 여러번 작업을 해보았지만 Oracle에서는 처음 해보는터라 정리도 할겸 기록을 남긴다. DB Export와 Import 일반적으로 DB를 주기적으로 백업하거나 다른 서버로 이관할 경우 백업 및 복구 명령어로 사용되는것이 Oracle Export, Import이다. 오라클에서는 2가지 레밸의 방법이 존재하는데, 오라클 DB 전체를 백업하고 복구하는 Full Level과 사용자 단위의 DB를 백업하고 복구하는 User Level이 있다. 1. 전체 백업(Full Level) 오라클의 DB 전체..

DB/Oracle 2023.11.17

(ORACLE) Global Temporary Table과 계층 구조 만들기

MSSQL을 Oracle로 옮기는 작업 중 메뉴에 대한 계층 쿼리를 수정해야 하는 상황이 발생했다. 기존에 MSSQL에서는 테이블 변수를 생성해서 전체 테이블을 담고, MaxLevel을 구한 후, ParentId와 본인의 ID를 통하여 반복문을 사용하여 계층 구조를 만들거나, WITH절을 사용하여 계층 형태로 구성을 하였는데 Oracle에서는 위의 방법이 생각처럼 쉽지가 않았다. Oracle의 Global Temporary Table 오라클에서는 MSSQL의 테이블 변수처럼 사용할 수 있는 Global Temporary Table(편의상 GTT라고 부르겠다)이란 것이 있다. GTT는 쉽게 설명하면 세션 혹은 트랜잭션 수명 주기와 관련이 있는 임시 테이블이라고 생각하면 되겠다. GTT를 만드는것에는 2가지..

DB/Oracle 2023.10.30

오라클 ORA-01002 오류와 해결방법

최근 MSSQL로 만들었던 서드파티 프로그램을 고객사 요청에 따라 Oracle DB로 변환하는 작업을 하고 있다. 그냥 단순하게 Adater바꾸고 Command 바꾸고 하면 끝날줄 알았는데... 생각보다 과정이 까다롭다. 일단 제일 문제가 되는 부분은 프로시저 호출이었는데 기존에 MSSQL 사용 당시 거의 대부분을 프로시저화 해서 호출해서 사용했다. 데이터 자체는 Oracle의 Migration을 이용해서 몽땅 다 옮겼는데 변환된 프로시저 대부분이 제대로 동작하지 않는 것을 확인하였다. 그래서 프로시저를 이리저리 수정중인데... 문제가 된 프로시저는 메뉴를 만드는 프로시저인데 임시테이블에 첫행을 Insert하고 재귀하면서 계층형 구조를 만든 뒤 Sys_RefCursor로 반환하는 프로시저이다. creat..

DB/Oracle 2023.10.27