Oracle TRANSLATE Not Returning Expected Result
Phil is right, "No, there isn't a limit", "it /should/ just work", and " this will be difficult to answer without copies of the data or another way to reproduce".  Here is a demonstration:

/*
drop table table_a;
drop table temp_table;
create table table_a as 
    (select level id, to_char(level) column_to_update from dual connect by level &lt;=200);
create table temp_table as (select level id from dual connect by level &lt;= 200);
update table_a set column_to_update='2ñ' where column_to_update='2';
*/

SELECT * FROM table_a;

UPDATE table_a SET column_to_update = TRANSLATE(COLUMN_TO_UPDATE,'ñ','n') 
WHERE ID IN (SELECT ID FROM TEMP_TABLE);

SELECT * FROM table_a;


You could try adding a WHERE clause to verify that TRANSLATE is actually changing rows.

UPDATE table_a SET column_to_update = TRANSLATE(COLUMN_TO_UPDATE,'ñ','n') 
WHERE ID IN (SELECT ID FROM TEMP_TABLE)
AND column_to_update &lt;&gt; TRANSLATE(COLUMN_TO_UPDATE,'ñ','n') ;


If this returns 200 rows then you might not be looking at the correct rows.  If it returns zero rows then the TRANSLATE function is not changing the data.