oracle00909,ORA-00909: invalid number of arguments

Even more than the correct syntax for this or that function, you need to learn how to read and understand error messages.

In this case, not only is the error message pretty self-explanatory, if you look at the ENTIRE error message you don't even need to guess which function is missing arguments. It is not substr, it's translate. How can you know?

Here is the output from SQL*Plus:

SQL> select translate(substr('New York', 1, 3)) from dual;

select translate(substr('New York', 1, 3)) from dual

*

ERROR at line 1:

ORA-00909: invalid number of arguments

Notice the star under the letter "t" for "translate"? That is telling you Oracle failed at that function.

If I do the same thing in SQL Developer I get the following message:

ORA-00909: invalid number of arguments

00909. 00000 -  "invalid number of arguments"

*Cause:

*Action:

Error at Line: 1 Column: 8

Column 8 means the letter "t" in "translate".

Toad says:

[Error] Execution (1: 8): ORA-00909: invalid number of arguments

Whenever you see an error message like that you should google "Oracle translate" - in almost all cases one of the first hits is a documentation page on the Oracle web site which will show you the correct syntax.