# Class Cursor (3.42.1)

3.42.1 (latest) 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.31.0 3.30.0 3.29.0 3.27.0 3.26.0 3.25.0 3.24.0 3.23.1 3.22.0 3.21.0 3.20.1 3.19.0 3.18.0 3.17.2 3.16.0 3.15.0 3.14.1 3.13.0 3.12.0 3.11.4 3.4.0 3.3.6 3.2.0 3.1.0 3.0.1 2.34.4 2.33.0 2.32.0 2.31.0 2.30.1 2.29.0 2.28.1 2.27.1 2.26.0 2.25.2 2.24.1 2.23.3 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.1 2.15.0 2.14.0 2.13.1 2.12.0 2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.2 2.5.0 2.4.0 2.3.1 2.2.0 2.1.0 2.0.0 1.28.2 1.27.2 1.26.1 1.25.0 1.24.0 1.23.1 1.22.0 1.21.0 1.20.0 1.19.0 1.18.0 1.17.0 1.16.0

    Cursor(connection)

DB-API Cursor to Google BigQuery.

| ## Parameter ||
|---|---|
| **Name** | **Description** |
| `connection` | `https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.dbapi.Connection` A DB-API connection to Google BigQuery. |

## Properties

### query_job

<br />

[google.cloud.bigquery.job](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.job).query.QueryJob \| None: The query job
created by the last `execute()` call, if a query job was created.

> [!NOTE]
> **Note:** If the last `execute()` call was `executemany()`, this is the last job created by `executemany()`.

<br />

## Methods

### close

    close()

Mark the cursor as closed, preventing its further use.

### execute

    execute(operation, parameters=None, job_id=None, job_config=None)

Prepare and execute a database operation.

<br />

> [!NOTE]
> **Note:** When setting query parameters, values which are "text" (`unicode` in Python2, `str` in Python3) will use the 'STRING' BigQuery type. Values which are "bytes" (`str` in Python2, `bytes` in Python3), will use using the 'BYTES' type.

A `datetime.datetime` parameter without timezone information uses the 'DATETIME' BigQuery type (example: Global Pi Day Celebration March 14, 2017 at 1:59pm). A `datetime.datetime` parameter with timezone information uses the 'TIMESTAMP' BigQuery type (example: a wedding on April 29, 2011 at 11am, British Summer Time).

<br />

    For more information about BigQuery data types, see:
    https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types

    `STRUCT`/`RECORD` and `REPEATED` query parameters are not
    yet supported. See:
    https://github.com/GoogleCloudPlatform/google-cloud-python/issues/3524

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `operation` | `str` A Google BigQuery query string. |
| `parameters` | `Union[Mapping[str, Any], Sequence[Any]]` (Optional) dictionary or sequence of parameter values. |
| `job_id` | `str None` (Optional and discouraged) The job ID to use when creating the query job. For best performance and reliability, manually setting a job ID is discouraged. |
| `job_config` | `https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.job.QueryJobConfig` (Optional) Extra configuration options for the query job. |

### executemany

    executemany(operation, seq_of_parameters)

Prepare and execute a database operation multiple times.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `operation` | `str` A Google BigQuery query string. |
| `seq_of_parameters` | `Union[Sequence[Mapping[str, Any], Sequence[Any]]]` Sequence of many sets of parameter values. |

### fetchall

    fetchall()

Fetch all remaining results from the last `execute*()` call.

> [!NOTE]
> **Note:** If a dry run query was executed, no rows are returned.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.dbapi.InterfaceError` | if called before `execute()`. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `List[Tuple]` | A list of all the rows in the results. |

### fetchmany

    fetchmany(size=None)

Fetch multiple results from the last `execute*()` call.

> [!NOTE]
> **Note:** If a dry run query was executed, no rows are returned.

> [!NOTE]
> **Note:** The size parameter is not used for the request/response size. Set the `arraysize` attribute before calling `execute()` to set the batch size.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `size` | `int` (Optional) Maximum number of rows to return. Defaults to the `arraysize` property value. If `arraysize` is not set, it defaults to `1`. |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.dbapi.InterfaceError` | if called before `execute()`. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `List[Tuple]` | A list of rows. |

### fetchone

    fetchone()

Fetch a single row from the results of the last `execute*()` call.

> [!NOTE]
> **Note:** If a dry run query was executed, no rows are returned.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.dbapi.InterfaceError` | if called before `execute()`. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `Tuple` | A tuple representing a row or `None` if no more data is available. |

### setinputsizes

    setinputsizes(sizes)

No-op, but for consistency raise an error if cursor is closed.

### setoutputsize

    setoutputsize(size, column=None)

No-op, but for consistency raise an error if cursor is closed.