從我的C#中,我在運行時創建數據表。我想將這個數據表傳遞給存儲過程,以便數據將一起插入到表中。 我使用MySQL作爲數據庫。在SQL-Server中,多個插入的MySQL通過xml等效的是什麼?使用存儲過程在MySQL中批量插入
我生成XML數據集,並傳遞給存儲過程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `RouteLocationVehicleTimeInsert`(
IN xml VARCHAR(1000000)
)
BEGIN
SET @x=1;
SET @val=xml;
WHILE @x<=4 DO
SET @vehicleId=EXTRACTVALUE(@val, 'NewDataSet/Table1/vehicle_id[[email protected]]');
SET @routeId = EXTRACTVALUE(@val, 'NewDataSet/Table1/route_id[[email protected]]');
SET @locationId = EXTRACTVALUE(@val, 'NewDataSet/Table1/location_id[[email protected]]');
SET @arrivalTime = EXTRACTVALUE(@val, 'NewDataSet/Table1/arrival_time[[email protected]]');
INSERT INTO `rm.routelocation_fm.vehicle_time`(`vehicle_id`,`route_id`,`location_id`,`arrival_time`)
VALUES(@vehicleId,@routeId,@locationId,@arrivalTime);
SET @[email protected]+1;
END WHILE;
[email protected]@
但它並不能幫助。當我測試寫入SP的SQL語句I給出了含多處值在同一列中,像如下
SET @val='<NewDataSet>
<Table1>
<vehicle_id>1</vehicle_id>
<route_id>5</route_id>
<location_id>1</location_id>
<arrival_time>00:00</arrival_time>
</Table1>
<Table1>
<vehicle_id>2</vehicle_id>
<route_id>5</route_id>
<location_id>2</location_id>
<arrival_time>00:00</arrival_time>
</Table1></NewDataSet>';
SET @x=1;
SET @vehicle_id= EXTRACTVALUE(@val, 'NewDataSet/Table1/vehicle_id[1]');
SELECT @vehicle_id;
它在同一列中給出的結果作爲1 1。他們是兩個記錄。
是的,我設法如下通過以XML格式的數據,SET @ VAL =」 1 LOCATION_ID> 00:00 ARRIVAL_TIME> 2 LOCATION_ID> 00:00 ARRIVAL_TIME> '; SET @ x = 1; SET @locationId = EXTRACTVALUE(@val,'NewDataSet/Table1/location_id [$ @ x]'); SELECT @locationId; –
Sangeetha
但是,當我測試這個使用select語句結果越來越「1 2」instaer 1 – Sangeetha
你可以添加到您的原始帖子... – BK435