我想通过变量赋值,然后调用存储过程传递参数,但是老是报错:DECLARE v_ContractID bigint(20); -- 合约ID
DECLARE v_SymbolNum varchar(20); -- 合约号
DECLARE v_ContractName varchar(24); -- 合约名称
DECLARE v_SecurityTypeID int(11); -- 证券类型ID
DECLARE v_ExchangeID int(11); -- 交易所ID
DECLARE v_VarietyID int(11); -- 种类ID
DECLARE v_MaxMarketOrderVolume int(11); -- 市价单最大下单量
DECLARE v_MinMarketOrderVolume int(11); -- 市价单最小下单量
DECLARE v_MaxLimitOrderVolume int(11); -- 限价单最大下单量
DECLARE v_MinLimitOrderVolume int(11); -- 限价单最小下单量
DECLARE v_StartDeliveryDate date; -- 开始交割日期
DECLARE v_EndDeliveryDate date; -- 结束交割日期
DECLARE v_CreateDate date; -- 创建日期
DECLARE v_OpenDate date; -- 上市日期
DECLARE v_ExpireDate date; -- 过期日期
DECLARE v_VolumeMultiple int(11); -- 合约数量乘数
DECLARE v_PriceTick decimal(20,8);-- 最小变动价格
DECLARE v_IsTrading tinyint(1); -- 当前是否交易
DECLARE v_IsAvailable tinyint(1); -- 合约是否有效
DECLARE v_Price decimal(20,8); -- 价格
DECLARE v_PriceUnit varchar(20); -- 单位/价格
DECLARE v_Unit varchar(20); -- 单位/手(每手最小单位)
DECLARE v_CurrencyID int(11); -- 货币单位ID
DECLARE v_CommissionFee decimal(20,8); -- 手续费
DECLARE v_CommissionRate decimal(20,8); -- 手续费率
DECLARE v_Margin decimal(20,8); -- 每手占用保证金
DECLARE v_MarginRate decimal(20,8); -- 保证金率
DECLARE v_AccountTypeID int(11); -- 账号类型ID
DECLARE v_HyPlace varchar(20); -- 地址
DECLARE v_VarietyName VARCHAR(20);
BEGIN
SET v_ExchangeID='10502004';
SET v_VarietyName='白糖';
SELECT VarietyID,SecurityTypeID INTO v_VarietyID,v_SecurityTypeID FROM contractvariety WHERE ExchangeID=v_ExchangeID,VarietyName=v_VarietyName;
SET v_SymbolNum='SB1303'
SELECT CONCAT(v_SecurityTypeID,'1303') INTO v_ContractID;
SET v_ContractName=v_VarietyName;
SET v_MaxMarketOrderVolume=30;
SET v_MinMarketOrderVolume=1;
SET v_MaxLimitOrderVolume=200;
SET v_MinLimitOrderVolume=1;
SET v_StartDeliveryDate='2013-03-01';
SET v_EndDeliveryDate='2013-03-16';
SET v_CreateDate=NOW();
SET v_OpenDate='';
SET v_ExpireDate='2013-03-17';
SET v_VolumeMultiple='112000';
SET v_PriceTick='0.01';
SET v_IsTrading='0';
SET v_IsAvailable='1';
SET v_Price='26.88';
SET v_PriceUnit='美分/磅';
SET v_Unit=112000;
SET v_CommissionFee='0';
SET v_CommissionRate=0.0002;
SET v_Margin='';
SET v_MarginRate=0.1;
SET v_AccountTypeID=105020004;
SET v_HyPlace='天志期货交易中心';
CALL spInscontractinfo
(v_ContractID
 v_SymbolNum
 v_ContractName
 v_SecurityTypeID
 v_ExchangeID
 v_VarietyID
 v_MaxMarketOrderVolume
 v_MinMarketOrderVolume
 v_MaxLimitOrderVolume
 v_MinLimitOrderVolume
 v_StartDeliveryDate
 v_EndDeliveryDate
 v_CreateDate
 v_OpenDate
 v_ExpireDate
 v_VolumeMultiple
 v_PriceTick
 v_IsTrading
 v_IsAvailable
 v_Price
 v_PriceUnit
 v_Unit
 v_CurrencyID
 v_CommissionFee
 v_CommissionRate
 v_Margin
 v_MarginRate
 v_AccountTypeID
 v_HyPlace
);END;
错误提示:
[SQL] DECLARE v_ContractID bigint(20);
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE v_ContractID bigint(20)' at line 1到底错在哪里哦?高手请指点。