CALL문의 구문과 매개변수에 대한 자세한 내용은 CALL문을 참조하십시오. CALL의 사용 예는 CREATE PROCEDURE문의 예를 참조하십시오.
루틴 정의에서 ESQL의 LANGUAGE 절을 지정하거나 루틴이 내장 함수인 경우 루틴이 ESQL 메소드로 호출됩니다.
각 매개변수의 데이터 유형 및 방향의 정의와 CALL이 정확히 일대일로 일치해야 합니다.
ESQL 루틴은 목록 및 행을 제외하고 ESQL 데이터 유형을 리턴할 수 있습니다.
루틴 정의에서 Java의 LANGUAGE 절을 지정하는 경우 루틴이 Java 메소드로 호출됩니다.
각 매개변수의 데이터 유형 및 방향의 정의와 CALL이 정확히 일대일로 일치해야 합니다.
Java 메소드에 void return 유형이 있는 경우 리턴할 값이 없기 때문에 INTO 절을 사용할 수 없습니다.
Java 루틴은 ESQL 대 Java 데이터 유형 맵핑 테이블에서 모든 데이터 유형을 리턴할 수 있습니다. 목록 및 행이 제외됨에 유의하십시오.
루틴 정의에 DATABASE의 LANGUAGE 절이 있는 경우 루틴이 데이터베이스 저장 프로시저로 호출됩니다.
데이터베이스 저장 프로시저를 호출하면 브로커는 제품의 로컬 이름과 일치하는 정의(CREATE PROCEDURE 문으로 작성된)를 검색합니다. 그러면 브로커가 다음 순서를 사용하여 데이터베이스의 프로시저에 알려진 이름과 속해 있는 데이터베이스 스키마를 해석합니다.
호출된 루틴의 정의에서 DYNAMIC RESULT SETS를 지정한 경우에는 CALL문의 ParameterList에 있는 표현식 수는 루틴에 대한 실제 매개변수의 수와 DYNAMIC RESULT SETS의 수를 합친 수와 일치해야 합니다. 예를 들어, 루틴에 세 개의 매개변수가 있고 두 개의 DYNAMIC RESULT SETS가 있는 경우 CALL문은 다섯 개의 매개변수를 호출된 루틴에 전달해야 합니다. 두 개의 DYNAMIC RESULT SETS에 대해 전달된 매개변수는 목록 매개변수여야 합니다. 즉, 배열 대괄호 [ ]로 규정된 필드 참조여야 합니다(예: Environment.ResultSet1[]).
데이터베이스 저장 프로시저는 간격, 목록 및 행을 제외하고 ESQL 데이터 유형을 리턴할 수 있습니다.