我想從表中選擇具有WHERE子句的多行的行,後綴我想格式化日期並覆蓋列。我創建了下面的SQL語句:SQL更新語句與選擇從自己的表在oracle中有多行
UPDATE aufgabenliste.aufgabendefinition
SET tagesauswahl = (SELECT TO_CHAR(TO_DATE(CONCAT(tagesauswahl,'.2010'), 'DDD.MM.YYYY') , 'DDD.MM')
FROM aufgabenliste.aufgabendefinition
WHERE aufgabentyp = 4)
WHERE aufgabentyp = 4;
我得到所謂的錯誤:
SQL Error: ORA-01427: single-row subquery returns more than one row
我怎樣才能做一個選擇更新多行使用Oracle同桌?
將日期作爲varchar2存儲是不好的做法。如果可以,最好使用日期類型添加新列,根據當前列填充它,然後刪除舊列。 – Kacper
我同意你的看法,但它是現有數據庫中存在大量數據的現有應用程序,我只需遷移此行。因此,沒有其他方式可以使用這個varchar2列。 –
請在更新之前和之後在表格中提供一些示例數據,以便我們可以嘗試查看您希望執行的操作。表面看來,@ JaydipJ的答案看起來就是你想要做的,除非tagesauswahl列中的數據看起來是一個已經以DDD.MM格式存在的字符串,那麼爲什麼你要更新它到什麼這已經是任何人的猜測。這讓我想,也許你正試圖將它更新到其他日期,但如果沒有示例輸入/輸出數據,這很難說。 – Boneist