Database & NoSQL

반응형
PL/SQL Developer 프로시저(Procedure) Debugging

 

1. 접속한 세션에 디버깅 권한 주기

grant debug connect session to '아이디';
grant debug any procedure to '아이디';

위 과정이 끝났다면 PL/SQL Developer를 이용해 프로시저나 패키지내 펑션을 디버깅 한다.

 

프로시저(또는 패키지)를 선택하고 마우스 오른쪽 버튼을 눌러Add Debug information에 체크한다. 간혹 체크가 되어 있어도 디버깅이 되지 않는 경우가 있다. 이런 경우에는 체크가 되어 있더라도 다시 Add debug information을 체크한다. 

패키지의 경우 Spec & Body로 나뉘어 있으므로 View Spec & Body를 클릭한다. (프로시저의 경우 바로 View를 클릭)
브레이크 포인트(Break Point)는 미리 지정이 가능하므로 소스에서 Ctrl + B키로 찍어놓을 수 있다. 

디버깅을 원하는 프로시저나 펑션에 우클릭 한 후, Test 버튼을 누른다.

Test 화면이 나오면 프로시저 구동을 위한 plsql 구문이 나온다. 하단에 파라미터 값을 설정하고 왼쪽 상단의 

Start Debugger(F9) 버튼을 누른다.

Step 버튼이 활성화 되면 단계별로 Debugging이 가능하다. 왼쪽 하단에 변수명을 넣으면 값이 보이고 변수 위에 마우스를 올려도 팝업으로 값을 확인할 수 있다.

      Crrl + B 클릭으로 브레이크 포인트

Run : Ctrl + R

Step Into : Ctrl + N

Step Over : Ctrl + O

Step Out : Ctrl + T

Run to next Exception

 

 

반응형
반응형
Missing artifact 

maven repository를 이용하여 ojdbc14.jar dependencies를 추가하면, Missing artifact com.oracle:ojdbc14:compile 오류가 발생하는 일이 발생한다. 여러번 반복해도 문제는 동일했다.. 검색결과 저작권 때문에 발생한다고...?? 

결국 다른 저장소를 추가하여 문제를 해결하였습니다.  oracle을 java에서 인수한 이후..?? 

 

 
pom.xml

 

mesir_repo    http://mesir.googlecode.com/svn/trunk/mavenrepo

 

반응형
반응형
Oracle Instantclient 적용 가이드

오라클 기반 개발 환경을 로컬에 구성하려면 오라클 클라이언트를 로컬환경에 설치해야 한다.

하지만 클라이언트 설치 없이 접속이 가능하도록 "instant Client"를 오라클에서 내놓았다.. 👍🏽👍🏽

설치가 필요없고 오라클 사이트에서 개발환경에 맞는 버전을 다운받은 후 폴더에 저장하고 경로를 지정하면 아주 쉽게 Oracle 개발 환경을 구축할 수 있다.

 

1. 오라클 홈페이지에서 instant Client 다운 (환경에 맞는 32bit, 64bit)

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html" target="_blank" rel="noopener" data-mce-href="http:// http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html">http:// http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 

 

Oracle Instant Client - Free tools and libraries for connecting to Oracle Database

 

www.oracle.com

 
2. 압축을 풀고 원하는 디렉토리에 위치
 D:/oracle_instantclient 
 
3. 환경변수 설정  

 

 기존 PATH에         -> ;D:/oracle_instantclient; 
 신규 ORACLE_HOME    -> D:/oracle_instantclient 
 신규 TNS_ADMIN 생성  -> D:/oracle_instantclient (TNSNAMES.ORA 경로 path)
 신규 NLS_LANG 생성   -> KOREAN_KOREA.AL32UTF8 / KOREAN_KOREA.KO16MSWIN949 (DB 캐릭터셋에 맞춰서)
 
⚠️ 주의사항

오라클 instantclient 를 8개월간 잘 사용했었는데 최근 신규 프로젝트에서NLS_LANG 과 관련된 문제에 직면하게 되었다. 클라이언트 버전으로 인스톨을 한 경우에는 NLS_CHARACTERSET 을 설치시에 설정을 하지만, 오라클 instantclient를 사용할 경우는 반드시 환경변수에 추가 하거나 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 에 NLS_LANG 문자열 값으로 캐릭터 셋을 지정해 줘야 한다. 이 부분을 지나치면 오라클 패키지 및 프로시저 컴파일시에 정상적인 한글이 깨지는 상황 발생, 다른 동료가 생성한 패키지에 한글이 깨지는 경우가 발생...민폐 OTL ...꼭 챙기자!!

CHARACTERSET 조회

SELECT * FROM sys.PROPS$ WHERE NAME = 'NLS_CHARACTERSET'; 
 
4. instanClient 폴더에 TNSNAMES.ORA 파일 생성 후 저장.
EXTPROC_CONNECTION_DATA =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))     )     (CONNECT_DATA =       (SID = PLSExtProc)       (PRESENTATION = RO)     )   ) ALIAS =    (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = DB 호스트)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = DB네임)       (SRVR = DEDICATED)     )  ) 

DB Tool을 이용하여 접속이 정상적으로 되는지 테스트를 진행합니다.

현재 SQLGate, PL/SQL Developer 접속 테스트는 진행해봤고 나머지는 테스트 gogogo~!

 

반응형
반응형
ms-sql getDate() format
자주 안쓰다 보면 이저리버리기 마련이죠..정리가 필수입니다.

기억 보단 기록이 중요합니다.

--Getdate() 
Select Getdate() 

--YYYY/MM/DD 
Select Convert(varchar(10),Getdate(),111) 

--YYYYMMDD 
Select Convert(varchar(10),Getdate(),112) 

--HH:MM:SS 
Select Convert(varchar(8),Getdate(),108) 

--HH:MM:SS:mmm 
Select Convert(varchar(12),Getdate(),114) 

--HHMMSS 
Select Replace(Convert(varchar(8),Getdate(),108),':','') 

--HHMMSSmmm 
Select Replace(Convert(varchar(12),Getdate(),114),':','')

--YYYY/MM/DD HH:MM:SS 
Select Replace(Convert(varchar(30),Getdate(),120),'-','/') 

--YYYY/MM/DD HH:MM:SS 
Select Replace(Convert(varchar(30),Getdate(),121),'-','/') 

--YYYY/MM/DD HH:MM:SS 
Select Convert(varchar(10),Getdate(),111) + Space(1) + Convert(varchar(8),Getdate(),108) 

--YYYYMMDDHHMMSS 
Select Convert(varchar(10),Getdate(),112) + Replace(Convert(varchar(8),Getdate(),108),':','')

 

반응형
반응형
보통은 1Byte 문자열 타입을 쓰지만
다중언어 지원 시스템에선 2Byte를 사용한다.
 
│ MsSQL │ Oracle │
* 1byte
│ char  │char   │ -> 고정 문자열 : 한글 2자리, 영문 1자리
│ varchar│varchar2 │ -> 비고정 문자열 : 한글 2자리, 영문 1자리
 
*2Byte : 유니코드 문자열
│ nchar  │nchar  │ -> 고정 문자열 : 한글 1자리, 영문 1자리 , 기타언어 1자리

│ nvarchar│nvarchar2│ -> 비고정 문자열 : 한글 1자리, 영문 1자리 , 기타언어 1자리
반응형

+ Recent posts

반응형