Python Informix字符到数字的转换错误(1213)

2024-05-29 06:02:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试通过Python脚本更新Informix表时,我得到了一个错误:

    Character to numeric conversion error (-1213)

db请求:

^{pr2}$

餐桌销售:

    sid | oid | price | pid

我要更新的列的数据类型为money(10,2)

我试着插入一个字符串和一个浮点值…哪一个比较合适?在

我在win2003服务器上使用Informix 10.00 TC6-

    CLIENT_LOCALE=en_us.819 - DB_LOCALE=en_us.819

为了连接到Informix,我使用pyodbc。在

在受支持的数据类型中没有钱的问题,所以不确定它是否有效(http://code.google.com/p/pyodbc/wiki/DataTypes)在


Tags: to脚本db错误errorlocaleen数据类型
2条回答

数据库驱动程序正在将代码转换为SQL。您可以使用Informix调试器查看它生成的SQL。我知道Informix不喜欢在它的SQL中使用千个分隔符。在

在您显示的SQL中有两种可能的字符串到数字的转换。在

  1. 正在将'1'转换为与sid相同的类型。在
  2. 转换作为占位符传递的值(变量price,它被?替代)。在

price中的值是什么?Python将其值打印为什么?在

Informix在为您进行转换方面非常灵活,因此第一次转换应该可以。通常,如果sid是一个字符串列,则只需提供单引号,但它应该转换得很好。在

所以,另一个问题是:PyODBC用price做什么?在

如果设置环境变量SQLIDEBUG=2:xyz并运行程序,您可能会看到发生了什么。它将生成一个前缀为xyz_的文件,该文件可以用sqliprint进行处理,假设您可以使用它。这将告诉您在客户机(Python)和数据服务器之间发送的内容。根据您找到的内容,它可能会指向客户端代码或服务器端代码。在

相关问题 更多 >

    热门问题