Из моего C# я создаю datatable во время выполнения. Я хочу передать эту информацию в хранимую процедуру, чтобы данные вставлялись вместе в таблицу. Я использую MySQL как базу данных. Что такое эквивалент MySQL для передачи xml для множественной вставки в SQL-Server?Массовая вставка в 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]@
Но это не помогает. Когда я проверить SQL заявление написано в СП я дает Умножить значения в одном столбце, вроде как ниже
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 @ вал =» 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