【Oracle】ORA-01747: user.table.column、table.columnまたは列指定が無効です
問題のSQL
code:問題のSQL.sql
UPDATE TABLE_NAME
SET
COLUMN1 = :COLUMN1,
COLUMN2 = :COLUMN2,
COLUMN3 = TO_DATE(:COLUMN3, 'YYYY/MM/DD HH24:MI:SS'),
WHERE COLUMN4 = :COLUMN4
原因と解決法
SET 句の最後(COLUMN3 の行)に不要なカンマがあるため、構文エラーとなっていた。
code:修正したSQL.sql
UPDATE TABLE_NAME
SET
COLUMN1 = :COLUMN1,
COLUMN2 = :COLUMN2,
COLUMN3 = TO_DATE(:COLUMN3, 'YYYY/MM/DD HH24:MI:SS')
WHERE COLUMN4 = :COLUMN4
ポイント
SET 句の各列指定の末尾にはカンマを付けるが、最後の列指定には不要。
ORA-01747 は列指定が無効な場合に発生するが、今回のように「余計なカンマ」でも起こり得る。
#Oracle #SQL