foxpro存储过程中的数据类型不匹配

时间:2010-11-02 07:49:38

标签: stored-procedures foxpro

我想将 jobact 中插入的每条记录的副本复制到新表 jobactupdates 。我正在为此目的使用存储过程。两个表完全相同,并且具有相同的列数。当我使用插入查询在 jobact 中插入数据时,存储过程失败并显示数据类型不匹配错误。

我的代码如下所示:

PROCEDURE insertData

INSERT INTO jobactupdates (jobcode ,jobdescr ,fileno ,port ,mastcode ,mastdescr ,mastdescr1 ,shipper ,goods ,unit1 ,qty ,unit ,vesname ,arremarks ,arrdate ,remarks ,docstat ,docdate ,blno ,bldate ,jastat ,rate ,demand ,received ,balance ,transpor,dldate);

VALUES(jobact.jobcode,jobact.jobdescr,jobact.fileno,jobact.port,jobact.mastcode,jobact.mastdescr,jobact.mastdescr1,jobact.shipper,jobact.goods,jobact.unit1,jobact.qty,jobact.unit,jobact.vesname,jobact.arremarks,jobact.arrdate,jobact.remarks,jobact.docstat,jobact.docdate,jobact.blno,jobact.bldate,jobact.jastat,jobact.rate,jobact.received,jobact.balance,jobact.transpor,jobact.dldate);

ENDPROC

3 个答案:

答案 0 :(得分:0)

当您尝试将不适当的数据类型插入字段时,会发生数据类型不匹配错误。例如,如果您尝试将字符串存储到整数字段中。我会仔细检查表结构并确认它们是相同的。

另一件需要注意的事情是,如果任何JOBACT字段类型设置为Integer(AutoInc)。它们必须在JOBACTUPDATES表中设置为Integer。否则,您将收到“Field is read-only”错误消息。

答案 1 :(得分:0)

有关 字符字段:将它们写入''标记, 数字字段:只是数字,例如123, 日期字段:{^yyyy-mm-dd} (日期字段中也可以选择有时间。)

答案 2 :(得分:0)

这是您的实际查询吗?如果是这样,您的Columns和Values子句包含不同的字段列表这一事实肯定会导致此错误:

Insert Into ...
bldate,
jastat,
rate,
demand,
received,
balance ..

Values ...
jobact.bldate, 
jobact.jastat,
jobact.rate, 
jobact.received, <--
jobact.balance,  <--
jobact.transpor  <--