刚刚开始使用db2。 关于从文件中提供SQL命令的快速问题。
如果我跑:
db2 -f mySQLcommands
并且我的所有命令都是一行sql命令,它们执行时没有任何问题。如果我在我的sql语句中间添加换行符,那么db2会返回“预期的这样一个字符” 以下是新行的示例:
CREATE TABLE Example (
id int)
如果没有新行,它就会运行。我用nano快速测试了,这意味着它可能正在使用\ n字符。
答案 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()