Obviously, as you didn't create a synonym in Scott's schema, you'll have to identify the function by owner's name. In your case, it is a SYSTEM (not that this is a particularly good idea - creating your objects in SYS (or SYSTEM) schema is, generally speaking, a BAD habit).
The correct syntax would be, for example
SELECT system.count_rows('DICTIONARY') FROM dual;
SELECT system.count_rows('SCOTT.EMP') FROM dual;
SELECT system.count_rows('ANY_USER_NAME.ANY_TABLE_IN_ITS_SCHEMA') FROM dual;
Actually i have a scott in different tablespace.
i created a function in system tablespace.
after that i want to check the number of rows in scott user.
thats why i created a function.
now i solved it....
here is the code....
create or replace function count_rows(table_name varchar2)
return INTEGER AUTHID CURRENT_USER is
execute immediate 'select count(*) c from '||table_name into i;
then....as scott user
SELECT table_name, system.count_rows(table_name) from user_tables ;