SQL codeCREATE PROCEDURE spInscontractinfo
(
IN v_SymbolNum varchar(20), -- 合约号
IN v_ContractName varchar(24), -- 合约名称
IN v_ExchangeID int(11), -- 交易所ID
IN v_MaxMarketOrderVolume int(11), -- 市价单最大下单量
IN v_MinMarketOrderVolume int(11), -- 市价单最小下单量
IN v_MaxLimitOrderVolume int(11), -- 限价单最大下单量
IN v_MinLimitOrderVolume int(11), -- 限价单最小下单量
IN v_StartDeliveryDate date, -- 开始交割日期
IN v_EndDeliveryDate date, -- 结束交割日期
IN v_OpenDate date, -- 上市日期
IN v_ExpireDate date, -- 过期日期
IN v_VolumeMultiple int(11), -- 合约数量乘数
IN v_PriceTick decimal(20,8), -- 最小变动价格
IN v_IsTrading tinyint(1), -- 当前是否交易
IN v_IsAvailable tinyint(1), -- 合约是否有效
IN v_Price decimal(20,8), -- 价格
IN v_PriceUnit varchar(20), -- 单位/价格
IN v_Unit varchar(20), -- 单位/手(每手最小单位)
IN v_CurrencyID int(11), -- 货币单位ID
IN v_CommissionFee decimal(20,8), -- 手续费
IN v_CommissionRate decimal(20,8), -- 手续费率
IN v_Margin decimal(20,8), -- 每手占用保证金
IN v_MarginRate decimal(20,8), -- 保证金率
IN v_AccountTypeID int(11), -- 账号类型ID
IN v_HyPlace varchar(20) -- 地址
)
BEGIN
DECLARE v_ContractID bigint(20); -- 合约ID
DECLARE v_SecurityTypeID int(11); -- 证券类型ID
DECLARE v_VarietyID int(11); -- 种类ID
DECLARE v_CreateDate date; -- 创建日期
SELECT VarietyID,SecurityTypeID INTO v_VarietyID,v_SecurityTypeID FROM contractvariety WHERE ExchangeID=v_ExchangeID AND VarietyName=v_ContractName;
SET v_ContractID=CONCAT(SecurityTypeID,(v_SymbolNum+0));
SET v_CreateDate=DATE_SUB(v_ExpireDate,INTERVAL 1 YEAR);
INSERT INTO contractinfo
VALUES(
v_ContractID,
v_SymbolNum,
v_ContractName,
v_SecurityTypeID,
v_ExchangeID,
v_VarietyID,
v_MaxMarketOrderVolume,
v_MMarketOrderVolume,
v_MaxLimitOrderVolume,
v_MLimitOrderVolume,
v_StartDeliveryDate,
v_EndDeliveryDate,
v_CreateDate,
v_OpenDate,
v_ExpireDate,
v_VolumeMultiple,
v_PriceTick,
v_IsTradg,
v_IsAvailable,
v_Price,
v_PriceUnit,
v_Unit,
v_CurrencyID,
v_CommissionFee,
v_CommissionRate,
v_Marg,
v_MargRate,
v_AccountTypeID,
v_HyPlace
);
END;