A script-enabled browser is required for this page to function properly.

ORA_FFI.REGISTER_RETURN built-in procedure

This procedure registers the return type of the specified foreign function.

Syntax


PROCEDURE ORA_FFI.REGISTER_RETURN
(funchandle funcHandleType,
 creturntype PLS_INTEGER);

PROCEDURE ORA_FFI.REGISTER_RETURN
(funchandle funcHandleType,
 creturntype PLS_INTEGER,
 plsreturntype PLS_INTEGER);

Parameters

Parameter

Description

funchandle

A function handle returned by ORA_FFI.REGISTER_FUNCTION or ORA_FFI.FIND_FUNCTION.

creturntype

The C datatype returned by the foreign function. The value of this argument may be one of the following packaged constants:

C_CHAR means char
C_CHAR_PTR means char *
C_DOUBLE means double
C_DOUBLE_PTR means double *
C_FLOAT means float
C_FLOAT_PTR means float *
C_INT means int
C_INT_PTR means int *
C_LONG means long
C_LONG_PTR means long *
C_SHORT means short
C_SHORT_PTR means short *
C_VOID_PTR means void *
plsreturntype

The corresponding PL/SQL return type (optional).

Example


/* Define Procedure define_c_funcs which calls two
ORA_FFI functions, getresult and foo. */

PROCEDURE define_c_funcs is
 getresult_fhandle ORA_FFI.FUNCHANDLETYPE;
 foo_fhandle ORA_FFI.FUNCHANDLETYPE;

 BEGIN
  /* Register the info for function getresult */
   getresult_fhandle := ORA_FFI.REGISTER_FUNCTION
   (testlib_lhandle,'getresult');
  
  /* Register the return type for function getresult */
   ORA_FFI.REGISTER_RETURN
   (getresult_fhandle, ORA_FFI.C_CHAR_PTR);

  /* Register the info for function foo */
   foo_fhandle := ORA_FFI.REGISTER_FUNCTION
   (testlib_lhandle,'foo'); 
  
  /* Register the return type for function foo */
   ORA_FFI.REGISTER_RETURN
   (foo_fhandle, ora_ffi.C_SHORT);
  
  ...
  
  /* Generate PL/SQL package containing all 
   functions defined in test library */
   ORA_FFI.GENERATE_FOREIGN
   (testlib_lhandle, 'test_ffi_pkg');

  ...

END;

See also

About the ORA_FFI built-in package

ORA_FFI built-in package