DB2 Version 10.1 for Linux, UNIX, and Windows

Database metadata retrieval functions in Python

You can use functions in the ibm_db API to retrieve metadata for IBM databases.

Before calling these functions, you must set up the Python environment, issue import_db in your Python script, and obtain a connection resource by calling the ibm_db.connect or ibm_db.pconnect function.

Important: Calling metadata functions uses a significant amount of space. If possible, cache the results of your calls for use in subsequent calls.
Table 1. ibm_db metadata retrieval functions
Function Description
ibm_db.client_info Returns a read-only object with information about the IBM data server client
ibm_db.column_privileges Returns a result set listing the columns and associated privileges for a table
ibm_db.columns Returns a result set listing the columns and associated metadata for a table
ibm_db.foreign_keys Returns a result set listing the foreign keys for a table
ibm_db.primary_keys Returns a result set listing the primary keys for a table
ibm_db.procedure_columns Returns a result set listing the parameters for one or more stored procedures
ibm_db.procedures Returns a result set listing the stored procedures registered in a database
ibm_db.server_info Returns a read-only object with information about the IBM data server
ibm_db.special_columns Returns a result set listing the unique row identifier columns for a table
ibm_db.statistics Returns a result set listing the index and statistics for a table
ibm_db.table_privileges Returns a result set listing the tables in a database and the associated privileges

For more information about the ibm_db API, see http://code.google.com/p/ibm-db/wiki/APIs.

Example

Example 1: Display information about the IBM data server client

import ibm_db

conn = ibm_db.connect("sample", "user", "password")
client = ibm_db.client_info(conn)

if client:
    print "DRIVER_NAME: string(%d) \"%s\"" % (len(client.DRIVER_NAME), client.DRIVER_NAME)
    print "DRIVER_VER: string(%d) \"%s\"" % (len(client.DRIVER_VER), client.DRIVER_VER)
    print "DATA_SOURCE_NAME: string(%d) \"%s\"" % (len(client.DATA_SOURCE_NAME), client.DATA_SOURCE_NAME)
    print "DRIVER_ODBC_VER: string(%d) \"%s\"" % (len(client.DRIVER_ODBC_VER), client.DRIVER_ODBC_VER)
    print "ODBC_VER: string(%d) \"%s\"" % (len(client.ODBC_VER), client.ODBC_VER)
    print "ODBC_SQL_CONFORMANCE: string(%d) \"%s\"" % (len(client.ODBC_SQL_CONFORMANCE), client.ODBC_SQL_CONFORMANCE)
    print "APPL_CODEPAGE: int(%s)" % client.APPL_CODEPAGE
    print "CONN_CODEPAGE: int(%s)" % client.CONN_CODEPAGE
    ibm_db.close(conn)
else:
    print "Error."

Example 2: Display information about the IBM data server

import ibm_db

conn = ibm_db.connect("sample", "user", "password")
server = ibm_db.server_info(conn)

if server:
    print "DBMS_NAME: string(%d) \"%s\"" % (len(server.DBMS_NAME), server.DBMS_NAME)
    print "DBMS_VER: string(%d) \"%s\"" % (len(server.DBMS_VER), server.DBMS_VER)
    print "DB_NAME: string(%d) \"%s\"" % (len(server.DB_NAME), server.DB_NAME)
    ibm_db.close(conn)
else:
    print "Error."