community.general.odbc module – Execute SQL via ODBC

Note

This module is part of the community.general collection (version 9.4.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: community.general.odbc.

New in community.general 1.0.0

Synopsis

  • Read/Write info via ODBC drivers.

Requirements

The below requirements are needed on the host that executes this module.

  • pyodbc

Parameters

Parameter

Comments

commit

boolean

added in community.general 1.3.0

Perform a commit after the execution of the SQL query.

Some databases allow a commit after a select whereas others raise an exception.

Default is true to support legacy module behavior.

Choices:

  • false

  • true ← (default)

dsn

string / required

The connection string passed into ODBC.

params

list / elements=string

Parameters to pass to the SQL query.

query

string / required

The SQL query to perform.

Attributes

Attribute

Support

Description

check_mode

Support: none

Can run in check_mode and return changed status prediction without modifying target.

diff_mode

Support: none

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode.

Notes

Note

  • Like the command module, this module always returns changed = yes whether or not the query would change the database.

  • To alter this behavior you can use changed_when: [yes or no].

  • For details about return values (description and row_count) see https://github.com/mkleehammer/pyodbc/wiki/Cursor.

Examples

- name: Set some values in the test db
  community.general.odbc:
    dsn: "DRIVER={ODBC Driver 13 for SQL Server};Server=db.ansible.com;Database=my_db;UID=admin;PWD=password;"
    query: "Select * from table_a where column1 = ?"
    params:
      - "value1"
    commit: false
  changed_when: false

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

description

list / elements=dictionary

List of dicts about the columns selected from the cursors, likely empty for DDL statements. See notes.

Returned: success

results

list / elements=list

List of lists of strings containing selected rows, likely empty for DDL statements.

Returned: success

row_count

string

The number of rows selected or modified according to the cursor defaults to -1. See notes.

Returned: success

Authors

  • John Westcott IV (@john-westcott-iv)