db2 sql脚本和换行符

时间:2010-03-07 07:22:42

标签: sql db2

刚刚开始使用db2。 关于从文件中提供SQL命令的快速问题。

如果我跑:

db2 -f mySQLcommands

并且我的所有命令都是一行sql命令,它们执行时没有任何问题。如果我在我的sql语句中间添加换行符,那么db2会返回“预期的这样一个字符” 以下是新行的示例:

CREATE TABLE Example (
              id int)

如果没有新行,它就会运行。我用nano快速测试了,这意味着它可能正在使用\ n字符。

2 个答案:

答案 0 :(得分:4)

使用-t命令行开关启用默认以分号结尾的多行语句;

e.g。

db2 -t -f mySQLcommands

CREATE TABLE Example (
              id int);

答案 1 :(得分:0)

不是对您的问题的直接回答,而是use something like PyDB2的另一种选择,让Python管理与DB2的接口。

这样的事情应该做:

import pydb2

mysqlstmt = open('create_table_example.sql', 'r').read() # multi-line SQL is ok

conn = pydb2.connect(database="db", host="hst", user="usr", password="pswd")
c = conn.cursor()

c.execute(mysqlstmt)

conn.commit()
c.close()
conn.close()

mysqlstmt.close()
相关问题