Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This blog post describes SSMA error message when converting Oracle PL/SQL UPDATE statement with column group assignment.
Oracle PL/SQL allows you to perform multi column update through sub-query. Consider the following example:
CREATE TABLE ACCOUNT
(
ACCOUNT_ID NUMBER NOT NULL,
ACCOUNT_OWNER VARCHAR2(30) NOT NULL
);
UPDATE ACCOUNT
SET (ACCOUNT_ID, ACCOUNT_OWNER) = (SELECT 1, 2 FROM dual)
WHERE ACCOUNT_ID = 10;
SSMA does not support converting UPDATE statement with sub-query and the following conversion error message is issued:
O2SS0293: Columns list in set clause cannot be converted.
The above statement can be converted to T-SQL statement such as the following:
UPDATE acct
SET acct.ACCOUNT_ID = updtqry.col1,
acct.ACCOUNT_OWNER = updtqry.col2
FROM ACCOUNT acct, (SELECT 1 col1, 2 col2) updtqry
WHERE acct.ACCOUNT_ID=10;