Hi Mike,
Thanks for your reply, I've found an easier solution, on closer look I found the problem was due to an attempt to insert a null value in the mdl_questionnaire_survey table > feebackscores column.
The column is set to "not null" and has a default value of '0' but the null constraint was still raising an error due to the code explicitly inserting a null value.
For now I have allowed null values for the column.
We are in the middle of migrating approx. 4,500 courses from Moodle 2.8.8 to a new 3.1 instance, after the migration is complete I will reapply the null constraint.
Once again many thanks for your reply.