Разбор строки DB2

Я полностью новичок в DB2, но у меня есть некоторые знания о MySQL. Вот что я пытаюсь сделать:

Я принимаю входную строку с разделителями-запятыми (stringPassedIn), например, скажем,

stringPassedIn = 'bob,mary,joe,joffrey,ed'; 

и проанализируйте строку запятой, затем запустите оператор вставки для каждого проанализированного значения. У меня есть запрос INSERT, но я не знаю, как написать анализатор строк с помощью DB2. Вот что у меня есть до сих пор:

DECLARE aCount INT;
DECLARE mySubString VARCHAR(256);
DECLARE tmp INT;

SET aCount = 0;
WHILE aCount < length(stringPassedIn) DO
    SET mySubString = SUBSTR(stringPassedIn, 1, LOCATE(',', stringPassedIn));
    tmp = LOCATE(',',stringPassedIn); 
    // INSERT STATEMENT HERE (THIS INSERT WORKS)
    SET aCount = tmp;
END WHILE;

Любая помощь будет принята с благодарностью. Заранее спасибо. Все примеры, которые я вижу, - это если я получаю данные из таблиц и не анализирую их перед тем, как вообще вводить данные.


person seroth    schedule 13.08.2014    source источник
comment
Это выглядит в основном нормально. Какие ошибки вы получаете (или другие проблемы)? Возможно, вам придется определить хранимую процедуру.   -  person Clockwork-Muse    schedule 14.08.2014


Ответы (1)


Вы можете использовать синтаксический анализатор XML, встроенный в серверы SQL, добавив префикс <name>, постфикс </name> и замену , на </name><name>.

Теперь это выглядит как XML-представление таблицы с одним столбцом.

person Hogan    schedule 13.08.2014
comment
Ни один из данных не является XML. Это просто простая строка. - person seroth; 13.08.2014
comment
@seroth - точно. SQL-серверы лучше разбирают XML, поэтому я покажу вам, как преобразовать его в XML. Если вы это сделаете, анализ будет легче. - person Hogan; 14.08.2014