If I try to add in `(, CCY_TO_BASE_RATE = EXCHANGERATE.MID_RATE)` into the update statement it shows the following errors.

```
ORA-06550: line 8, column 21:
PL/SQL: ORA-00923: FROM keyword not found where expected

ORA-06550: line 6, column 1:
PL/SQL: SQL Statement ignored

```

However, without that `(, CCY_TO_BASE_RATE = EXCHANGERATE.MID_RATE)`, the statement is valid.
So how would I need to edit my codes so that the statement will be valid?

```
DECLARE
    v_system_base_ccy NVARCHAR2(10);
BEGIN
    v_system_base_ccy := dbo.Fn_parameter('SYSTEMBASECCY');

    UPDATE tbl_dvcollateral A
    SET    coll_value_base = (SELECT coll_value * Nvl(EXCHANGERATE.mid_rate, 1),
                                     ccy_to_base_rate = EXCHANGERATE.mid_rate
                              FROM   (SELECT mid_rate,
                                             from_ccy
                                      FROM   TABLE(
                                     dbo.Fn_exchangeratetable(:V_AS_OF_DATE,
                                     NULL,
                                     v_system_base_ccy) )
                                     )EXCHANGERATE
                              WHERE  A.ccy = EXCHANGERATE.from_ccy(+)),
           last_updated_by = :V_LOGIN_ID,
           last_updated_datetime = To_timestamp(To_char(systimestamp,
                                                'YYYY-MM-DD HH24:MI:SS'),
                                   'YYYY-MM-DD HH24:MI:SS')
    WHERE  as_of_date = :V_AS_OF_DATE
           AND record_status_id = :V_AUTHORIZED;
END; 

```