2016-06-12 2 views
0

동료 중 한 명에게이 질문을 할 수는 있었지만이 사실을 알아야 할 필요가 있다면 다른 초보자도 스택 오버플로에 넣는 것이 좋습니다.callable 문에서 registerOutParameter의 의미와 용도는 무엇입니까?

저는 registerOutParameter 기능을 수행하려고합니다. 예를 들면 다음과 같습니다.

이 경우 registerOutParameter는 ResultSet 대신 또는 ResultSet에 반환되는 값을 반환합니다. 어떻게 될지 또는 가능한 유스 케이스가 무엇인지 상상할 수 없습니다.

그래서 당신은 알고이 없습니다 지금까지 내가 살펴 보았다 게으름이다 :

이 질문은 다루기에는 너무 기본적인 것 같습니다.

backgound에 정보], 나는 www.mkyong.com/jdbc/jdbc-callablestatement-stored-procedure-out-parameter-example/에서 저장 프로 시저에 대한 자습서를

+1

_ "어떻게 될지 또는 가능한 유스 케이스는 무엇인지 상상할 수 없습니다."_ 당신이 이해하지 못하는 것을 더 잘 설명해야합니다. 예를 들어, 'OUT' 스타일 매개 변수 (또는 IN OUT')를 지원하는 데이터베이스 구현 (예 : Microsoft SQL Server? IMO, 유스 케이스는 그 존재를 알게되면 분명해진다. 매우 고안된 예제는 3 가지 (!) 다른 방법을 보여주는 https://technet.microsoft.com/en-us/library/aa174792(v=sql.80).aspx를 참조하십시오. SQL Server 프로 시저가 값을 반환 할 수 있습니다. –

+0

Thanks @ MarkRotteveel은 설명한대로 http://tutorials.jenkov.com/jdbc/callablestatement.html에서 자습서를 진행하고 있습니다. 이 튜토리얼에는'callableStatement.registerOutParameter (1, java.sql.Types.VARCHAR);'라는 줄이 있습니다. 나는 이것을 해결하려고 노력하고 있는데, 이것은 쿼리 매개 변수에 대한 데이터 유형을 설정하거나 다른 작업을 수행하는 것입니까? – Brett

+0

@MarkRotteveel, FYI 아니오 들어 본 적이없는 'IN OUT'. 보내 주신 링크를 확인했는데 참조가없는 것 같습니다. 답변을 설명해 주시겠습니까? – Brett

답변

1

귀하의 질문이 저장하는 방법을 아주 꽉하고있는 중이 야 절차는 RDBMS에서 실행됩니다. CallableStatement을 통한 저장 프로 시저의 실행은 ResultSet을 반환하는 SELECT 쿼리의 실행과 매우 다릅니다. 이러한 쿼리를 실행할 때 RDBMS는 열에 대한 설명을 반환하고 드라이버는이 설명을 사용하여 데이터에 대해 예상되는 것을 알 수 있습니다.

저장 프로 시저를 실행하기 전에 JDBC 사양에서는 각 OUT 매개 변수에 registerOutParameter을 호출해야한다고 설명합니다. 이것은 드라이버에게 예상되는 데이터를 나타 내기위한 것입니다. 왜? 많은 RDBMS의 경우 저장 프로 시저를 설명 할 방법이 없기 때문입니다. 이 API를 통해 out 매개 변수를 정의하는 것은 사용자가 결정합니다. 운전자는 스스로 알아낼 수 없을 것입니다. 그런 다음 저장 프로 시저를 실행 한 다음 CallableStatement에서 getters를 호출하여 등록한 OUT 매개 변수의 값을 가져올 수 있습니다.