我想在mysql中创建一个存储过程。但是在DECLARE @TableVar
下面的代码
CREATE PROCEDURE `testproc`()
BEGIN
DECLARE @TableVar TABLE
(Col1 VARCHAR(100),
Col2 VARCHAR(100),
Col3 VARCHAR(100),
Col4 VARCHAR(100),
Col5 VARCHAR(100),
Col6 VARCHAR(100),
Col7 VARCHAR(100),
Col8 VARCHAR(100),
Col9 VARCHAR(100));
FOR v_row AS SELECT art_no as Article,barcode as Barcode,i.item_name,b.brand_name,s.size_name,sd.quantity,mrp,mlp,si.received_date,si.gino,si.inv_no,sd.brand_supplier_id,bs.name as party_name FROM stock_inward_details sd left join stock_inward si on sd.inv_id=si.id left join items i on i.id=sd.item_id left join size s on sd.size_id=s.id left join brands b on sd.brand_id=b.id left join brand_supplier bs on sd.brand_supplier_id=bs.id where si.received_date<='2017-11-30' order by si.id
DO
INSERT INTO @TableVar VALUES (Article,Barcode,item_name,brand_name,size_name,quantity,mrp,gino,party_name);
END FOR
SELECT *
FROM @TableVar
END
请帮我解决这个问题。
答案 0 :(得分:0)
如果您的查询正常,
试试这个:
CREATE PROCEDURE testproc()
BEGIN
DECLARE done INT DEFAULT FALSE;
Declare Article_var VARCHAR(100);
Declare Barcode_var VARCHAR(100);
Declare item_name_var VARCHAR(100);
Declare brand_name_var VARCHAR(100);
Declare size_name_var VARCHAR(100);
Declare quantity_var VARCHAR(100);
Declare mrp_var VARCHAR(100);
Declare gino_var VARCHAR(100);
Declare party_name_var VARCHAR(100);
DECLARE dec_cur CURSOR FOR SELECT art_no as Article,barcode as Barcode,i.item_name,b.brand_name,s.size_name,sd.quantity,mrp,mlp,si.received_date,si.gino,si.inv_no,sd.brand_supplier_id,bs.name as party_name FROM stock_inward_details sd left join stock_inward si on sd.inv_id=si.id left join items i on i.id=sd.item_id left join size s on sd.size_id=s.id left join brands b on sd.brand_id=b.id left join brand_supplier bs on sd.brand_supplier_id=bs.id where si.received_date<='2017-11-30' order by si.id;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
create TEMPORARY table temp_temptable( Col1 VARCHAR(100),Col2 VARCHAR(100),Col3 VARCHAR(100),Col4 VARCHAR(100),Col5 VARCHAR(100),Col6 VARCHAR(100),Col7 VARCHAR(100),Col8 VARCHAR(100),Col9 VARCHAR(100));
OPEN dec_cur;
REPEAT
FETCH dec_cur INTO Article_var,Barcode_var,item_name_var,brand_name_var,size_name_var,quantity_var,mrp_var,gino_var,party_name_var;
insert into temp_temptable (Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9) values(Article_var,Barcode_var,item_name_var,brand_name_var,size_name_var,quantity_var,mrp_var,gino_var,party_name_var);
UNTIL done END REPEAT;
select * from temp_temptable;
drop temporary table if exists temp_temptable;
CLOSE dec_cur;
END
在继续使用此SP之前,请确保您的查询正常工作。