SQL문은 런타임 시 해당 명령문을 사용하는 메소드의 매개변수에 전달되는 값을 사용할 수 있습니다. SQL문은 이러한 매개변수를 표시문자로 표시합니다. 각 표시문자는 메소드의 매개변수에 해당합니다.
메소드가 호출될 때 이러한 매개변수의 값은 호출 애플리케이션에서 제공하고 SQL문의 실행 중에 사용되는 인수에서 얻습니다.
메모리의 Java 콜렉션에 대해 실행되는 어노테이션이 있는 메소드에 표시되는 SELECT문의 FROM절에 허용되는 매개변수 표시문자는 다음과 같습니다. 이러한 두 매개변수 표시문자는 FROM절에서 쿼리의 다른 위치에서와 동일한 의미를 갖습니다.
동일한 SQL문에 두 유형의 매개변수 표시문자를 모두 사용할 수 없습니다.
pureQuery는 런타임 시 어노테이션이 있는 메소드의 선언에서 콜렉션의 클래스에 관해 필요한 정보를 가져옵니다.
메모리의 Java 콜렉션에 대해 실행되는 인라인 메소드에 표시되는 SELECT문의 FROM절에 허용되는 매개변수 표시문자는 다음과 같습니다.
동일한 SQL문에 두 유형의 매개변수 표시문자를 모두 사용할 수 없습니다.
<classname>은 메소드가 실행될 때 매개변수로 전달되는 해당 콜렉션에 있는 구성원의 완전한 클래스 이름을 표시합니다.
pureQuery는 런타임 시 메모리의 Java 콜렉션의 구성원을 검사할 때 사용되는 클래스를 알아야 합니다.
마지막 두 양식 중 하나가 사용되는 경우, 다음 예제에서처럼 클래스 이름은 특히 FROM절에서 식별됩니다.
List<Employee> emps; Dept[] depts; List<Map<String, Object>> list = qocData.queryList ("select e.id, d.name " + "from ?1.com.ibm.data.test.Employee as e, " + "?2.com.ibm.data.test.single.Dept as d " + "where e.deptid=d.id", emps, depts);