function안에서
쿼리문을 동적으로 생성하고
execute (쿼리) 하였는데.
ret_val = execute(쿼리);
ret_val를 어떻게 확인 할수 있을까요?
질문이 모호합니다. 먼저 쿼리를 응용프로그램에서 실행했다는 것인지, 서버 응용프로그램 - 사용자 정의 함수 - 에서 실행했다는 것인지, 사용한 언어가 어떻게 되는지, 그 리턴되는 값이 record 인지, record set 인지, 단순 column 인지, 아니면, 그 쿼리의 작동이 정상적으로 끝났는 것을 확인 하기 위한 것인지, 꽤 복잡하죠? 질문이 명확하면 답도 명확합니다.
execute(쿼리문) 구문은
EXECUTE command-string [ INTO [STRICT] target ];
이렇게 생겼네요. 8.2.x 버전 이야기입니다.
문제는 update 구문인데,
아직도 질문이 모호한 것이,
ret 값을 구하려고 하는 이유가,
1. 그 동적 쿼리의 구문 오류가 있는 것을 확인하려고 하는 것인지,
2. 그 쿼리가 정상적으로 잘 실행되었는지를 확인하려고 하는 것인지,
3. 그 update 된 로우들이 어떤 것이 있었는지를 확인하려고 하는 것인지,
4. 그 update 된 자료에 대한 그 다음 값이 어떤 것인지,
이런 다양한 상황이 있습니다.
일반적으로
첫번째,두번째 경우는 구문 오류 문제는 쿼리의 실행 예외처리 exception 로 풀어야하고요.
세번째와 네번째 경우는 윗 execute 구문처럼 into 구문을 사용하면 쉽습니다.
그와 다른 방법으로 multi row 일 경우라면,
그 쿼리를 returing 절을 이용해서 multi row를 리턴하고,
for target in execute ...
순환 구문을 이용해서 처리를 합니다.