当前位置: 首页 > 面试题库 >

跟进:从python执行.sql文件

漆雕和昶
2023-03-14
问题内容

一年多以前,有人问这个问题:在python中执行用于在SQL Management
Studio中运行的.sql文件

我正在用python编写脚本,该脚本连接到SQL Server,并根据SQL命令在大(数GB)的.sql文件中创建和填充数据库。

看起来SQLCMD需要下载并安装SQL Server
Express。还有其他方法可以从python执行.sql文件,而不需要每个使用我的脚本的人都下载并安装SQL Server吗?pyodbc是否具有此功能?

编辑:

这是另一个类似的问题: 使用python MySQLdb执行*
.sql文件

同样,这里的解决方案是从命令(在本例中为mysql.exe)中调用实用程序,并以文件作为参数列出。

在我看来,应该有一种使用Python的DB API库执行此操作的方法,但是我没有找到它,因此我正在寻找可用于运行该文件的*
.exe,例如SQLCMD或MYSQL。从命令行。

附言:如果我没有正确看待的话,请随时纠正我。也许下面的代码和从命令行运行一样高效:

for line in open('query.sql','r'):
    cursor.execute(line)

问题答案:

我发现使用pyodbc在python中读取文件并批量执行实际上比在外部使用SQLCMD实用程序要快(而且我不必在运行脚本的每台计算机上都安装SQLCMD!)。

这是我使用的代码(因为pyodbc似乎没有executescript()方法):

with open(scriptPath, 'r') as inp:
    for line in inp:
        if line == 'GO\n':
            c.execute(sqlQuery)
            sqlQuery = ''
        elif 'PRINT' in line:
            disp = line.split("'")[1]
            print(disp, '\r')
        else:
            sqlQuery = sqlQuery + line
inp.close()


 类似资料:
  • 问题内容: 如何使用MySQLdb python驱动程序执行* .sql文件中存储的sql脚本。我在尝试 但这不起作用,因为 cursor.execute 一次只能运行一个sql命令。我的sql脚本改为包含多个sql语句。我也在尝试 但也没有成功。 问题答案: 假设文件中每行有一条SQL语句。否则,您将需要编写一些规则以将行连接在一起。

  • 问题内容: 我试图弄清楚如何引用python文件,以便可以在Java GUI Jar中执行它。它必须是一个可移植的解决方案,因此使用绝对路径对我不起作用。我在下面列出了我的项目结构,并包括了有关如何尝试执行python脚本的代码。感谢您提供的任何帮助! 问题答案: 使用开头的文件路径意味着您要从文件系统的根目录开始。 您的代码为我工作,只需删除该斜杠即可: 放置错误文件没有显示错误的原因是因为此J

  • 问题内容: 我正在尝试编写一些代码,以读取一个SQL文件(用分隔的多个语句)并执行所有语句。 在纯JDBC中,我可以这样写: 并且这两个(所有)语句都已执行。当我尝试在Spring JdbcTemplate中执行相同的操作时,虽然仅执行第一条语句! 有没有一种方法可以执行多个语句?在进行谷歌搜索时,我发现只有“ 手动拆分sqlQuery”之类的解决方案当然是没有用的(它需要更多的解析)。 问题答案

  • 我试图编写一些代码来读取一个SQL文件(多个语句由分隔)并执行所有语句。 有没有执行多个语句的方法?在Googleing中,我只找到了“通过手动拆分sqlQuery”这样的解决方案,这当然是无用的(这需要更多的解析)。

  • 问题内容: 我有使用xpath爬行的HTML网页。在某个节点的给我这个字符串: 我只需要输出。我可以编写一个正则表达式来弄清楚整个事情,但是我希望我的代码保持整洁。最好的选择是什么? 我正在浏览以下库,但没有看到确切的解决方案。他们中的大多数人都试图模仿浏览器,从而使蜗牛的速度变慢。 http://code.google.com/p/python-spidermonkey/(清楚地说) http:

  • 问题内容: 假设您有这样的课程: 在python中,此类仅在分配值时才起作用: 所以基本上,我的问题是我是否可以从php发送变量以执行python类,并返回其输出(它是字符串)并继续执行我的php代码? 有什么建议? 解 在php中: 在python中: 问题答案: 首先,创建一个包含要执行的python脚本的文件,包括(或加载)类和 现在,使用以下行获取结果: