delphi 调用存储过程报错,提示目前操作所使用的值是错误的类型 10

////存储过程CREATEORREPLACEFUNCTIONsn_check_carton_qty(car_nocharactervarying)RETURNSinte... ////存储过程
CREATE OR REPLACE FUNCTION sn_check_carton_qty(car_no character varying)
RETURNS integer AS
$BODY$
declare
i integer;
sql varchar;
begin
sql:='select count(*) from sn_check where carton_no='''||car_no||'''';
execute sql into i;
--i:=count(*);
return i;
end;
$BODY$
LANGUAGE plpgsql VOLATILE

/////调用方法

begin
sp1.Close;
sp1.ProcedureName:='sn_check_carton_qty';
sp1.Parameters.Refresh;
sp1.Parameters.CreateParameter('car_no',ftString, pdInput , 10,null);
sp1.Parameters.CreateParameter('return',ftInteger, pdOutput , 10,null);
sp1.Parameters[0].Value:='CSC4F5M2C22000000013';
sp1.prepared:=true;
sp1.Open;
edt1.Text:=IntToStr(sp1.Parameters.ParamByName('return').Value);
end;
展开
 我来答
RedBaronVIP
2012-12-24 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:243万
展开全部
car_no应该是字符串类型,你把它声明成varchar(50)试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
324pppp
2012-12-24
知道答主
回答量:10
采纳率:0%
帮助的人:4.1万
展开全部
sp1.Parameters.CreateParameter('car_no',ftString, pdInput , 10,null);

sp1.Parameters[0].Value:='CSC4F5M2C22000000013';

明显10个长度不够
追问
我使用的是postgresql,提示程序的数据类型错误,但是这个数据库中没有varchar类型,只有character varying
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式