這是一個非常conviluted一塊SQL的,我知道,但基本數據錄入猴子,我的工作搞砸了大牌之一,並在複製已深深捲入了我們的系統。執行SQL更新與子查詢列名
有相當大量的必須從VAL1改爲值2的值,如果另一個值等於VAL3表。問題是,我不知道所有這些情況,並且存在嚴格的列命名策略,這意味着所有表都有唯一的列名。
我寫了下面的SQL試圖做到這一點更新,但它不工作:
UPDATE
(SELECT DISTINCT TABLE_NAME AS tbTableName
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME LIKE '%MAJR%')
SET
(SELECT COLUMN_NAME AS tbColumnName
FROM tbTableName
WHERE COLUMN_NAME LIKE '%MAJR%') = 'VAL2'
WHERE
(SELECT COLUMN_NAME AS tbColumnNameWhere
FROM tbTableName
WHERE COLUMN_NAME LIKE '%PROGRAM%') = 'VAL3'
AND tbColumnName = 'VAL1';
但是,是的,這屬於在與錯誤:無效user.table.column,TABLE.COLUMN ,或列規格 01747. 00000 - 「無效user.table.column,table.column,或列規範」
任何幫助,將不勝感激。
你將需要使用動態sql – TrevDev 2011-05-04 06:07:54