PL-SQL 변경 후 테스트
PL-SQL변경 후에 다소 실행이 안되는 부분이 있었다.
1. 실행시에 프로시저 모드로 실행. A5-SQL에서의 postGre사용시에는 프로시저 모드 후 call 프로시저이름 ex) test라는 프로시저를 만든 후 call test();이런식 불러야 실행이된다.
Function의 기능은 리턴타입이 있어 method랑 비슷한 개념이고, 프로시저는 void타입의 return타입없이 그대로 실행된다.
2. 변수 선언시. DECREARE안에 변수를 선언할때 변수의 타입을 같이 지정해주는데, 자꾸 타입으 크기가 1로들어가 곤란했다. 이때 문제는 SQL이므로 타입의 크기도 같이 지정해주어야한다.
ex) p00Key character(13)
만약 타입의 크기를 지정해주지 않으면 크기는 1로 디폴트된다.
3. 디버그가 힘들다. 자바나 c#과 같은 프로그래밍은 얼마든지 디버그를 하여 어디까지 들어가고 안에 값이 맞는지 확인이 가능한데, 디버그의 어려움이 있어 쿼리 수정부분에서 조금 애를 썼다.
실행을 정상적으로하고 값이 update와 insert까지 되는걸 확인했지만, 지금 Pl-SQL로 옮긴 시간단축이라는 측면에서는 크게 다르지않았다. 그래서 결국 시간이 오래걸리는 조회부분을 다시 만지기로했다. 이번에는 쿼리의 스타일을 변경하는것이 아닌 로직을 바꾸기로 했다.
현재의 로직은 8600번의 루프안에서 한번씩 검색 -> update or insert이런식인데
이걸 8600개의 결과를 한번에 습득 후 update or insert를 하려한다. 대상 데이터 쿼리와 검색 테이블을 하나로 합쳐 저장 후 루프를 돌리려고 한다.
너무 똑똑해 현우형~^^