Yes, and you're exactly right. I had to create a loop. I initially get the number of occurrences for a repeating field in a SetValue service like ...
Location: /process_data/@TestCnt
Expression: count(/process_data/formXml/form1/Page1/MainSubform/TestSubform)
Then in the loop of the workflow I have a JdbcService with a SQL statement like ...
insert into TestTable
(Process_ID, Name, Street, City, State, Zip)
values
(
'{$ /process_data/@id $}',
'{$ /process_data/formXml/form1/Page1//TestSubform[number(/process_data/@TestCnt)]/Name $}',
'{$ /process_data/formXml/form1/Page1//TestSubform[number(/process_data/@TestCnt)]/Street $}',
'{$ /process_data/formXml/form1/Page1//TestSubform[number(/process_data/@TestCnt)]/City $}',
'{$ /process_data/formXml/form1/Page1//TestSubform[number(/process_data/@TestCnt)]/State $}',
'{$ /process_data/formXml/form1/Page1//TestSubform[number(/process_data/@TestCnt)]/Zip $}'
)
And note the use of the 'number' function for datatype conversion.