Кажется, проблема в том, что в SQL возникла проблема с обновлением поля при вызове строковой функции в том же поле. Я преодолел ограничение, добавив столбец в таблицу, обновив этот новый столбец с помощью строковой функции, а затем скопировав это новое значение столбца в исходное целевое поле, например:
-- 6: copy modified subjectid to temp
--UPDATE dnasample D
--SET
-- temp = substring(S.subjectid from 3)
--FROM
-- ibg_studies ST,subjects S
--WHERE
-- D.studyindex=ST.studyindex
-- AND ST.studyabrv='CONGER'
-- AND D.subjectidkey=S.id
-- AND D.projectindex IS NULL
-- 7: copy temp to subjectid
--UPDATE subjects S
--SET
-- subjectid = D.temp
--FROM
-- ibg_studies ST,dnasample D
--WHERE
-- D.studyindex=ST.studyindex
-- AND ST.studyabrv='CONGER'
-- AND D.subjectidkey=S.id
-- AND D.projectindex IS NULL
-- 8: Remove the temp column
ALTER TABLE dnasample DROP COLUMN temp