DBIO 5

[프로프레임] Conditions can't call the right function

프로프레임에서 dbio를 호출하였는데 오류가 발생하였다. 오류 번호로 리턴된 값은 -90001002 이고 오류메시지는 [DBIO] Conditions can't call the right function 이다. 어떤 경우에 이런 오류가 나오는 것일까? 처음 프로프레임 dbio 를 array fetch 로 작성하였을 때 관련한 배열처리 내부 함수들이 만들어 진다. 이런 array fetch dbio를 프로그램에 끌어다 사용하였을 것이다. 그 후에 개발자가 dbio 를 단건 fetch 로 변경하였다. 그리고 dbio를 컴파일 했다. 그러나 정작 이 dbio를 사용하고 있는 프로그램은 다시 컴파일을 하거나 재구성을 하지 않았다. 이런 경우에 프로그램이 실행될 때는 이전의 array fetch 함수를 계속 호출..

Lock option has no effect for the map

프로프레임에서 사용하는 DBIO의 경우 select 하거나 fetch 할 때 pdb_lock 옵션을 이용할 수 있다. DBIO 스튜디오에서 Lock Query 생성을 체크하고 소스생성, 컴파일 할 때 생성된 SQL을 보면 WAIT 옵션이 뒤에 붙어 있는 것을 볼 수 있다. dbio 내부에서 sql을 실행하기 전에 input 의 pdb_lock 변수에 PDB_LOCK 값이 세트되어 온 경우에 SQL에 WAIT 절이 있는 지 체크하게 되고 SQL 에 WAIT 절이 없는데 LOCK option을 사용하겠다고 했을 때 "Lock option has no effect for the map" 메시지가 나오게 된다. 하지만 개발자가 dbio_in.pdb_lock = PDB_LOCK; 와 같이 코딩한 적도 없는데도 D..

view 의 출력변수 생성시 오류

DBIO는 VIEW 의 출력변수 생성을 위하여 sql 이 정상적으로 수행되는지 한번 돌려 봅니다. 이렇게 돌려 보는 것은 작성된 SQL이 제대로 작성되었는지 확인하는 순기능도 있지만 실제적으로는 출력변수들이 메타에 등록되어 있는 용어들인지 체크하는 것이 더 중요한 목적이라고 볼 수 있다. 사례1:java.sql.SQLException : ORA-01013 : 사용자가 현재 작업의 취소를 요청했습니다. 그런데 이 SQL을 돌려보았더니 쿼리 수행시간이 너무 오래 걸려서 ( 튜닝이 필요하겠죠 ) 제우스나 스튜디오가 일정시간 동안 응답이 없을 경우 time out 으로 끊어 버리기 때문에 발생되는 오류 메시지입니다. 즉, 프로프레임의 버그라고는 볼 수 없습니다. 해결방법으로는 1. sql 수행속도를 3초 이내에..

DBIO 의 출력변수생성시 오류발생 건

VIEW 에서 출력변수 생성을 하거나 sql 테스트 기능을 할 때는 스튜디오에서는 jdbc 를 이용하여 쿼리를 수행합니다. 간혹 oracle 옵티마이저가 jdbc 에서 온 sql과 오렌지, 토드 같은 툴에서 온 쿼리를 다르게 해석할 수 있습니다. 토드에서는 정상적으로 수행되는데 dbio에서는 느리게 동작되는 경우가 간혹 있을 수 있습니다. 그러나 대부분의 경우는 sql 작성이 잘못 되어 발생되는 경우가 대부분이고 이 경우는 order by 문을 넣고 안 넣고의 차이입니다. order by 가 있고 없음에 따라서 다른 실행plan 이 수립되는 것을 볼 수 있습니다. 2개의 SQL PLAN 정보입니다. 많은 차이가 있네요.... --------------------------------------------..

반응형