1
원격 데이터베이스에 getEmployee(id in varchar)
이라는 oracle 함수를 작성했으며 데이터베이스 링크를 사용하여 로컬 데이터베이스에서 호출하려고합니다. 나는 자바 코드에서이 함수를 호출 할 때,Java에서 oracle 함수 호출
FUNCTION LocalGetEmployee(ID in varchar2)
RETURN Schema.SomeRefCursor AS OUTPUT Schema.SomeRefCursor;
BEGIN
OUTPUT := [email protected](ID) ;
RETURN OUTPUT;
END;
그러나 : (: 직원 (ID, 이름, 주소) 표). getEmployee
에서
ORA-24338: statement handle not executed
오류를 제공합니다.
다음
CREATE OR REPLACE FUNCTION GETEMPLOYEE (IN_ID IN VARCHAR2)
RETURN TYPES.RECORD_CURSOR AS
RESULT_CURSOR TYPES.RECORD_CURSOR;
BEGIN
OPEN RESULT_CURSOR FOR
SELECT ID, NAME, ADDRESS
FROM EMPLOYEE
WHERE ID = IN_ID;
RETURN RESULT_CURSOR;
END GETEMPLOYEE;
내 자바 코드입니다 :
String fncall = "{call ? := schema.LocalGetEmployee(?)}";
CallableStatement stm = con.prepareCall(fncall);
stm.registerOutParameter(1, Types.CURSOR);
stm.setInt(2, 123);
stm.execute();
ResultSet rs = (ResultSet) stm.getObject(1);
while(rs.next()) {
......
}
Java 코드를 게시 할 수 있습니까? –
@ Trevor 내 원래 게시물에 자바 코드를 추가했습니다. –
ORA 오류는 데이터베이스 문제가 있음을 의미합니다. 기능이 작동 할 때까지 Java를 살펴볼 가치가 없습니다. –