心情日记 今天写的存储过程遇见的问题

 --声明

USE ActiveInteractionData
go
drop PROCEDURE haoma
GO
CREATE PROCEDURE haoma
(
  @CallFromNumber    varchar(64),
  @CallToNumber      varchar(64),
  @call              varchar(64) OUTPUT
)
AS
IF exists(
SELECT top 1 CallFromNumber
FROM tblCallSummary
WHERE tblCallSummary.CallFromNumber=@CallFromNumber order by CallSummaryId desc ) 
begin
set @call=
(SELECT  top 1 Agent2DeviceID
FROM tblCallSummary
where CallFromNumber=@CallFromNumber order by CallSummaryId desc)
end
else
begin
set @call =(select VDNNumber
from RoutingTable
where DID=@CallToNumber)
end


--执行
DECLARE @call    varchar(64)
EXEC haoma '0966322796','33188004',@call OUTPUT
SELECT 'xingm'=@call
GO
--说明 该存储过程是为了实现电话的只能跟随设计的 '0966322796','33188004' 是传入的号码和VDN  如果在数据库的表tblCallSummary里面找到找到该电话,就把接该电话的坐席员赋给返回返回值,表明找到了接电话的人

如果没有找到该号码说明第一次打该电话 把vdn赋给该值33188004对应的有vdn  主要要加引号  表明传的是字符串

后来客户要求改 他们传的是数值  我就做了以下更改

--声明存储过程
USE ActiveInteractionData
go
drop PROCEDURE haoma
GO
CREATE PROCEDURE haoma
(
  @CallFromNumber    bigint,
  @CallToNumber      bigint,
  @call              varchar(64) OUTPUT
)
AS
IF exists(
SELECT top 1 CallFromNumber
FROM tblCallSummary
WHERE CallFromNumber = convert(varchar(64),@CallFromNumber) order by CallSummaryId desc )  
begin 
set @call=
(SELECT  top 1 Agent2DeviceID
FROM tblCallSummary
where  CallFromNumber = convert(varchar(64),@CallFromNumber) order by CallSummaryId desc) 
end
else
begin
set @call =(select VDNNumber
from RoutingTable
where DID=@CallToNumber)
end


--执行改过程
DECLARE @call    varchar(64)
EXEC haoma 0966322796,33188004,@call OUTPUT
SELECT 'xingm'=@call
GO

这样存在一个问题  就是在数值转换的时候 你传的0966322796  在传给数值的形式参数的时候,会自动把0去掉造成找不到该号码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值