Идентификаторы без кавычек должны начинаться с буквенного символа (см. правило 6 здесь ).Вы пытаетесь присвоить значение столбцу с именем, начинающимся с числа 1AO00
, 1AP00
и т. Д.
Не видя определения таблицы для CustomersPriceGroups
, мы не знаем, имеет ли оностолбцы с этими именами.Если это так, то они должны быть созданы как идентификаторы в кавычках.Если это так, вам придется ссылаться на них (везде) с кавычками, что не является идеальным - делает код немного сложнее для чтения, позволяет легко допустить такую ошибку и может быть трудно определить, что не так.Даже Oracle говорит, на той же странице:
Примечание: Oracle не рекомендует использовать идентификаторы в кавычках для имен объектов базы данных.Эти идентификаторы в кавычках принимаются SQL * Plus, но они могут быть недопустимыми при использовании других инструментов, управляющих объектами базы данных.
В вашем коде вы используете кавычки при назначении sQ
,но вывод, который вы показываете, не делает;но он также не имеет идентификатора схемы saap.
.Это может быть из-за того, что вы не используете ту версию кода, о которой думаете, но, возможно, просто потерялись, если перепечатали данные, а не вставили их - вы также не показывает более ранний вывод c.cuno
.Но также возможно, что вы, например, неправильно указали имя столбца.
Если execute
выдает ошибку, вы не увидите команду, выполняемую в этот раз в цикле, потому что отладкаприходит после этого - вы видите успешные ценности, а не те, которые ломают.Вам необходимо проверить все значения, возвращаемые функциями;Я подозреваю, что g
возвращает значение для cpgs
, которое на самом деле не является допустимым именем столбца.
Как говорит @ninesided, показ дополнительной информации, особенно полное сообщение об исключении, поможет определить, что не так.