python - 在 Python 和 MySQL 的存储过程中使用变量

标签 python mysql stored-procedures

如何在 MySQL 中设置存储过程来使用外部变量。 我以前写过SP,但没有使用外部输入。使用来自 pyODBC 的连接字符串。

然后,使用 python 如何调用该 Sp 并输入该变量?

cursor.execute('Call d.MySP' ????)

最佳答案

假设您正在使用MySQLdb,根据the docs ,调用将是:

cursor.callproc('d.MySP',args)

深入了解变量的设置以及 CALL 语句的制作方式:

def callproc(self, procname, args=()):
    from types import UnicodeType
    db = self._get_db()
    charset = db.character_set_name()
    for index, arg in enumerate(args):
        q = "SET @_%s_%d=%s" % (procname, index,
                                     db.literal(arg))
        if isinstance(q, unicode):
            q = q.encode(charset)
        self._query(q)
        self.nextset()

    q = "CALL %s(%s)" % (procname,
                         ','.join(['@_%s_%d' % (procname, i)
                                   for i in range(len(args))]))
    if type(q) is UnicodeType:
        q = q.encode(charset)
    self._query(q)
    self._executed = q
    if not self._defer_warnings: self._warning_check()
    return args

关于python - 在 Python 和 MySQL 的存储过程中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5169302/

相关文章:

php - 具有超过 1 个 IN 函数的安全 pdo mysql 语句

php - 使用 PHP 的 MySQL 简单加密技术

python - Pycurl 一直在终端打印

python - pip lxml 安装段错误

php - 需要 mysql 逗号分隔值中最流行的值?

mysql - 如何在 MYSQL 过程中声明变量

sql-server - 由于源数据库正在运行复制,因此无法修改已还原数据库的存储过程

python - 使用管道和网格搜索执行特征选择

Python 包未导入 AWS EMR 中

mysql - 如何在 'create table'语句中使用字符串变量值?