# 8. API: Variable Objects

Note

The DB API definition does not define this object.

## 8.1. Variable Methods

Variable.getvalue([pos=0])

  Returns the value at the given position in the variable. For variables created using the method `Cursor.arrayvar()` the value returned will be a list of each of the values in the PL/SQL index-by table. For variables bound to DML returning statements, the value returned will also be a list corresponding to the returned data for the given execution of the statement (as identified by the `pos` parameter).

Variable.setvalue(pos, value)

  Set the value at the given position in the variable.

## 8.2. Variable Attributes

Variable.actual_elements

  This read-only attribute returns the actual number of elements in the variable. This corresponds to the number of elements in a PL/SQL index-by table for variables that are created using the method `Cursor.arrayvar()`. For all other variables this value will be identical to the attribute `numElements`.

  For consistency and compliance with the PEP 8 naming style, the attribute actualElements was renamed to actual_elements. The old name will continue to work for a period of time.

Variable.buffer_size

  This read-only attribute returns the size of the buffer allocated for each element in bytes.

  For consistency and compliance with the PEP 8 naming style, the attribute bufferSize was renamed to buffer_size. The old name will continue to work for a period of time.

Variable.inconverter

  This read-write attribute specifies the method used to convert data from Python to the Oracle database. The method signature is converter(value) and the expected return value is the value to bind to the database. If this attribute is None, the value is bound directly without any conversion.

Variable.num_elements

  This read-only attribute returns the number of elements allocated in an array, or the number of scalar items that can be fetched into the variable or bound to the variable.

  For consistency and compliance with the PEP 8 naming style, the attribute numElements was renamed to num_elements. The old name will continue to work for a period of time.

Variable.outconverter

  This read-write attribute specifies the method used to convert data from the Oracle database to Python. The method signature is converter(value) and the expected return value is the value to return to Python. If this attribute is None, the value is returned directly without any conversion.

Variable.size

  This read-only attribute returns the size of the variable. For strings this value is the size in characters. For all others, this is same value as the attribute bufferSize.

Variable.type

  This read-only attribute returns the type of the variable. This will be an Oracle Object Type if the variable binds Oracle objects; otherwise, it will be one of the database type constants.

  Database type constants are now used when the variable is not used for binding Oracle objects.

Variable.values

  This read-only attribute returns a copy of the value of all actual positions in the variable as a list. This is the equivalent of calling `getvalue()` for each valid position and the length will correspond to the value of the `actualElements` attribute.