<p>多亏了上面的Jon和Marcelo,我意识到我正在将一种使用SQL的方法从一个环境转移到另一个不适合的环境。在</p>
<p>在该资源的帮助下:
<a href="http://www.ibm.com/developerworks/data/tutorials/db2pylnx/db2pylnx-pdf.pdf" rel="nofollow">http://www.ibm.com/developerworks/data/tutorials/db2pylnx/db2pylnx-pdf.pdf</a>
根据Jon上面的评论,我了解到SQL语句中的问号是语句后面元组中值的“placemarkers”。
一个非常简单的例子是</p>
<pre><code>tuple = ('SOMEVALUE', 'SOME OTHER VALUE')
'SELECT * FROM WHEREEVER WHERE COLUMN1 = '?' AND COLUMN2 = '?', (TUPLE)'
</code></pre>
<p>剩下的问题是我自己造成的。我从minidom创建的列表中提取值。该列表包含UNICODE,因为它是原始XML文件的组成部分。在</p>
<p>错误是“_db2.error:Param 0:String expected.”我误解了这一点,以为db2参数应该是字符串。它应该是一个元组(当我把它改成一个字符串时,我得到了:“\udb2.Error:Parameters must be a tuple or list.”在</p>
<p><strong>db2期望的元组应该包含ASCII字符串。非unicode</strong>因此我修改了代码,用ascii而不是unicode加载字符串:</p>
^{pr2}$
<p>这使得“打印元组”从以下方面发生了变化:</p>
^{3}$
<p>收件人:</p>
<pre><code>('01100158059642', '1055', '2012-09-12', '13:30:05', '0700', '1', '1', '28010')
</code></pre>
<p>我的数据库更新了!在</p>
<pre><code>db2 "select * from trickledb.trickledb"
PLUCOD TICKETNO DATE TIME STORENO POSNO QTY SEQNO
- -
01100158059642 1055 2012-09-12 13:30:05 0700 1 1 28010
</code></pre>
<p>非常感谢-我觉得我的Python学习曲线现在不是很垂直了!在</p>