Top

Name

rstmtexec — execute a SQL statement on a remote DSN, provides a result set where applicable.

Synopsis

rstmtexec ( in dsn varchar ,
  in stmt varchar ,
  in max_rows integer ,
  in params_array vector );
 

Description

This function can be used to execute SQL on a remote data source directly. It returns a result set where one is expected.

This function is wrapper for the rexecute() provided for convenience as a shortcut.

Unless explicitly granted, only the DBA group is permitted to use the rstmtexec() to maintain security. Caution is required here since any user granted use of rstmtexec() has full control of the remote data source set-up by the DBA, albeit limited to the overall abilities of the remote user on the remote data source. Users can be granted and denied access to this function using the following commands:

GRANT REXECUTE ON '<attached_dsn_name>' TO <user_name>
REVOKE REXECUTE ON '<attached_dsn_name>' FROM <user_name>

This command directly affects the grant to the rexecute() function, which is the underlying mechanism for providing this function.

Parameters

dsn

The data source where the SQL statement should be executed. You must make sure that you have already defined the data source using the vd_remote_data_source function or by attaching tables from it.

stmt

the SQL statement to execute on the remote data source dsn .

max_rows

This controls the number of rows to be returned as follows:

negative - return no rows
zero (0) - all rows (default)
positive - specified number of rows

in_params

A vector of parameters to the statement if the executed statement has parameters. IN input parameters are specified as literals whereas OUT and INOUT parameters are specified as vectors of 3 elements for OUT and 4 elements for INOUT as follows:

[0] - the type of the parameter ('OUT' or 'INOUT')
[1] - the datatype that the parameter is bound to on the remote
[2] - the buffer length for the output parameter
[3] - (INOUT only) the input value of the parameter

Non-vector parameters in the in_params parameter of rstmtexec are considered IN parameters, so the rstmtexec remains backwards compatible.

Return Values

This function returns a result set.