Sangil's blog

https://github.com/ChoiSangIl Admin

TOAD(Oracle) tnsnames.ora 백업 방법(위치) DEV / DATABASE

2019-12-10 posted by sang12


컴퓨터를 바꾸는 과정에서 ORACLE TNS 정보를 백업 해야할 일이 생겼다. 
기존 환경 변수 Path를 참고하여 tnsnames.ora파일을 백업!

환경변수 경로 : D:\app\admin\product\11.2.0\client_3\bin 
tnsnames.ora 파일 경로 : D:\app\admin\product\11.2.0\client_3\Network\Admin\tnsnames.ora 

새 윈도우를 설치하고 toad와 oracle clinet를 설치하고나서 아래의 경로에 tnsnames.ora파일을 복사해 준다.

환경변수 경로 : C:\app\USER\product\11.2.0\client_1\bin
tnsnames.ora 파일 복사 : C:\app\USER\product\11.2.0\client_1\Network\Admin\tnsnames.ora

Network와 Admin폴더가 존재하지 않을경우 생성하도록 하자! 그리고 Toad에 다시 접속하면 정상적으로 DB접속 정보가 뜨는 것을 확인 할 수 있다.

#ORACLE TNS정보 백업 #tnsnames.ora 백업 #tnsnames.ora위치 #TNS 백업 #DATABASE

ORACLE MAX+1을 증가시켜 SELECT로 가져오기(ROWNUM) DEV / DATABASE

2019-11-28 posted by sang12


개발을 하다보면 기본키를 NVL(MAX(SEQ)+1), 1)형태로 만들어둔 경우를 많이 볼 수 있다. 
이럴 경우에 해당 테이블에 데이터를 넣을려면 하나씩 키가 중복안되게 넣던지... PL/SQL을 사용하여 커서등을 이용해서 넣던지 할 수 있다. 너무 귀찮..
애초에 Oracle에서 제공해주는 Sequence로 만들었다면 편했을텐데... 

편하게 넣는 방법은 ROWNUM을 이용하여 해당 맥스값 시퀀스를 서브쿼리로 가져와서 ROWNU만큼 더해주면 된다. 

-예제
SELECT (SELECT MAX(10) FROM DUAL)+ ROWNUM SEQ , A 
FROM ( 
	SELECT 'DATA1' A FROM DUAL 
UNION ALL
SELECT 'DATA2' A FROM DUAL 
UNION ALL
SELECT 'DATA3' A FROM DUAL
UNION ALL
SELECT 'DATA4' A FROM DUAL
UNION ALL
SELECT 'DATA5' A FROM DUAL
)
(SELECT MAX(컬럼SEQ명) FROM DUAL)+ ROWNUM 

※ MAX+1은 유일성을 보장 안해주기때문에 항상 조심해서 사용해야한다.

#ROWNUM을 활용한 MAX+1 리스트 가져오기 #ORACLE #DATABASE #ORACLE MAX+1

ORACLE TOAD 모든 ROW 가져오기 (NO FETCHED) DEV / DATABASE

2019-11-19 posted by sang12


ORACLE TOAD를 사용 하다보면 모든 레코드를 가져와야 될 경우가 있습니다. 가령 쿼리 속도를 체크한다던지.. TO_CHAR나 TO_DATE로 데이터를 변형하는 경우, 정상적으로 데이터가 변형되는지 확인해야 할 경우입니다.

일반적으로 TOAD는 기본적인 FETCHE 단위를 가져서 500개씩(설정한 FETCHE단위 수)만 사용자에게 보여줘서 빠른 것처럼 보여줍니다. 
이때 데이터를 검색하고 아래하단 Data Grid에서 파란색 화살표(버전마다 모양이 다름)가 아래로 가있는 Pivot Grid를 선택하면  All records must be fetched to enable pivot grid. Fetch all records? 라고 물어봅니다. 거기서 yes를 클릭하면 전체 로우를 가져 올 수 있습니다.

#ORACLE TOAD ALL RECORD FETCHED #TOAD ALL ROW FETCH #TOAD 모든 로우 가져오기 #ORACLE 모든 레코드 가져오기 #ORACLE #DATABASE