Было бы понятнее, если бы вы использовали соглашение об именах, которое четко отличало параметры от имен столбцов.Но, возможно, это то, что вы хотите.Обратите внимание на использование символа ascii 39 (одинарная кавычка).
drop procedure if exists `InsertIntoTable`;
delimiter $$
CREATE PROCEDURE `InsertIntoTable`(in
tablename varchar(45),
in ID varchar(45),
in Project varchar(45),
in Variant varchar(45),
in ReleaseVersion varchar(45) ,
in TestBenchID varchar(45) ,
in TestCaseID int(11) ,
in TestCaseNamespace varchar(100) ,
in TestCaseName varchar(45),
in TestCaseDomain varchar(45) ,
in TestType varchar(45) ,
in HardwareVersion varchar(4000) ,
in SoftwareVersion varchar(4000),
in Result varchar(45) ,
in inComment varchar(4000),
in Duration varchar(45) ,
in StartTime varchar(45) ,
in EndTime varchar(45) )
BEGIN
SET @sql = CONCAT('Insert into ', tablename ,
'(ID,Project,Variant,',
'ReleaseVersion,',
'TestBenchID,' ,
'TestCaseID,' ,
'TestCaseNamespace,'
'TestCaseName,' ,
'TestCaseDomain,' ,
'TestType,' ,
'HardwareVersion,' ,
'SoftwareVersion,' ,
'Result,' ,
CHAR(96),'Comment',CHAR(96),',' ,
'Duration,' ,
'StartTime,' ,
'EndTime',') values ('
);
SET @sql = CONCAT(@SQL,
char(39),ID,char(39),',',
char(39),Project,char(39),',',
char(39),Variant,char(39),',',
char(39),ReleaseVersion,char(39),',',
char(39),TestBenchID,char(39),',',
char(39),TestCaseID,char(39),',',
char(39),TestCaseNamespace ,char(39),',',
char(39),TestCaseName ,char(39),',',
char(39),TestCaseDomain ,char(39),',',
char(39),TestType ,char(39),',',
char(39),HardwareVersion ,char(39),',',
char(39),SoftwareVersion ,char(39),',',
char(39),Result ,char(39),',',
char(39),inComment ,char(39),',',
char(39),Duration ,char(39),',',
char(39),StartTime ,char(39),',',
char(39),EndTime,char(39),');');
select @sql;
#PREPARE s FROM @sql;
#EXECUTE s;
#DEALLOCATE PREPARE s;
END $$
delimiter ;
Call InsertIntoTable('oablp1992','id','project','variant',
'releaseversion',
'testbenchid',
1,
'testcasenamespace',
'testcasename',
'Domain',
'type',
'hardware',
'software',
'result',
'comment',
'Duration',
'starttime',
'endtime');
, который производит этот оператор sql
Insert into oablp1992(
ID,Project,Variant,ReleaseVersion,TestBenchID,TestCaseID,TestCaseNamespace,
TestCaseName,TestCaseDomain,TestType,HardwareVersion,SoftwareVersion,
Result,`Comment`,Duration,StartTime,EndTime)
values (
'id','project','variant','releaseversion','testbenchid','1','testcasenamespace',
'testcasename','Domain','type','hardware',
'software','result','comment','Duration','starttime','endtime');
Не забудьте удалить закомментированные строки, когда вы хотите передатьэто к sql.