zoukankan      html  css  js  c++  java
  • Mysql学习---使用Python执行存储过程

    使用Python执行存储过程

    使用Python执行存储过程[2部分]:

    1.执行存储过程,获取存储过程的结果集
      2.将返回值设置给了  @_存储过程名_序号 =

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import pymysql
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='test_python', charset='utf8')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 执行存储过程
    # @_p3_0 = 1, 相当于Python帮我们创建了变量,所以返回值也是放在了这个变量里面,需要我们手动获取
    # @_p3_1 = 2
    # @_p3_2 = 3
    # @_p3_3 = 0
    ret1 = cursor.callproc('p3', args=(1, 2, 3, 0))
    # print('ret1:', ret1)   # 传递参数过去 ret1: (1, 2, 3, 0),同时执行了存储过程将结果放在内存
    result = cursor.fetchall()  # 从内存获取返回值,[{'@_p3_0': 1, '@_p3_3': 7, '@_p3_1': 2, '@_p3_2': 103}]
    print('返回的参数:', result, '
    ')
    
    # 获取执行完存储的参数,因为Python帮我们将结果放在了变量里,所以需要从变量里面获取
    ret2 = cursor.execute("select @_p3_0,@_p3_1,@_p3_2,@_p3_3")
    # print('ret2:', ret2)       # 什么都不执行: ret2: 1
    result2 = cursor.fetchall()      # 获取返回值,[{'@_p3_0': 1, '@_p3_3': 7, '@_p3_1': 2, '@_p3_2': 103}]
    print('返回的结果集:', result2)
    
    conn.commit()   # 因为存储过程里面有多个sql语句,可能有selete,insert等语句,所以为了保证代码的完整
    cursor.close()
    conn.close()

    image

    image

  • 相关阅读:
    runlevel=$(set -- $(runlevel); eval "echo $$#" )
    MPLS
    sql server 查询存储过程返回值
    sql 游标的关闭和释放
    sql 查询某一列最大的数据
    flex label如何通过AS3实现颜色设置
    sql server 字符串拆分
    Linux centos 解决"不在 sudoers 文件中。此事将被报告"的问题
    Flex String拼接
    flex 判断对象的类型
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9385253.html
Copyright © 2011-2022 走看看