Thanks for the tips.

Finally found out that there are two entries for some instances which cannot be accessed by TOAD but could by sql*plus. It seems that
sql*plus used the right one but TOAD used the wrong one.

After fixing the tnsnames.ora and I can connect to them using TOAD and OEM.

Another weird problem is :
for one instance:
I can access it using system accoount with the password through sql*plus,but cannot by TOAD or OEM STANDALONE using system account and
the same password. They always reported ORA-01017:invalid username/password. logon denied.

I am sure the password is right.
I already log in as sysdba to do
alter user system identified by 'mypassword';

Really strange.