cx_Oracle获取表列名

使用 cursor对象的description获取列名

print cur.description
    ''' .description
            This read-only attribute is a sequence of 7-item sequences.

            Each of these sequences contains information describing one result column:

            name
            type_code
            display_size
            internal_size
            precision
            scale
            null_ok
    '''

#coding:utf-8

import cx_Oracle

def main():
    conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo")
    cur = conn.cursor()

    sql = "select * from userinfo t"
    result = cur.execute(sql)


    #获取数据表的列名,并输出
    title = [i[0] for i in cur.description]

    #格式化字符串
    g = lambda k:"%-8s" % k
    title =map(g,title)

    for i in title:
        print i,

    print
    #输出查询结果
    for i in result.fetchmany(5):
        for k in map(g,i):
            print k,
        print

if __name__ == '__main__':
    main()

结果如下:

### Python `cx_Oracle` 库使用指南 #### 安装 cx_Oracle 库 为了能够正常使用 `cx_Oracle` 库,在安装该库前需确认已安装 Oracle 客户端,并且 Python 的环境变量已经设置妥当[^2]。通过 pip 工具可以方便地完成 `cx_Oracle` 的安装: ```bash pip install cx_Oracle ``` #### 连接至 Oracle 数据库 建立到 Oracle 数据库连接是使用 `cx_Oracle.connect()` 函数实现,通常需要提供用户名、密码以及数据库描述符作为参数。 ```python import cx_Oracle connection = cx_Oracle.connect( user="your_username", password="your_password", dsn="localhost/orclpdb" ) print("Successfully connected to Oracle Database") ``` #### 执行 SQL 查询并获取结果集 利用游标的 `execute()` 方法执行 SQL 命令;对于 SELECT 类型的操作,则可通过调用 `fetchall()`, `fetchone()`, 或者 `fetchmany(size)` 来检索查询返回的数据行列。下面是一个简单的例子来展示如何读取中的记录[^1]。 ```python cursor = connection.cursor() query_sql = "SELECT * FROM employees" cursor.execute(query_sql) rows = cursor.fetchall() for row in rows: print(row) ``` #### 获取带有列名的结果集合 有时希望得到更易理解的形式化输出——即每条记录不仅包含字段值还附带相应的列名称。这可以通过访问游标对象的属性 `.description` 实现,它提供了有关所选格结构的信息,包括各列的名字和其他元数据[^3]。 ```python column_names = [desc[0] for desc in cursor.description] results_with_columns = [] for row in rows: results_with_columns.append(dict(zip(column_names, row))) # 显示部分样例数据 from pprint import pprint pprint(results_with_columns[:5]) ``` #### 插入新纪录 (IN 语句的应用场景之一) 除了基本的选择操作外,还可以构建 INSERT INTO ... VALUES (...) 形式的SQL语句向目标内添加新的记录项。这里给出一个简单案例说明怎样安全有效地插入多条记录[^4]。 ```python data_to_insert = [ ('Alice', 'HR'), ('Bob', 'Engineering') ] insert_query = """ INSERT INTO staff(name, department) VALUES (:name, :dept) """ try: cursor.executemany(insert_query, data_to_insert) connection.commit() except Exception as e: print(f"An error occurred while inserting records: {e}") finally: if not connection.is_closed(): connection.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值