I have create 2 tables T1 and T2.
Table T1

Name Null? Type
--------------------- -------- -------------------
ROW_NUM NOT NULL NUMBER
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(18)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)

Table T2
Name Null? Type
--------------------- -------- -------------------
ROW_NUM NOT NULL VARCHAR2(10)
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(18)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)

I have PKs on ROW_NUM columns on both tables.

select count(1) from t1;
COUNT(1)
----------
1890288

14:20:10 H8DEVW3>select count(1) from t2;

COUNT(1)
----------
1890288

Both tables have same number of rows (1.8 Million) and same data.

Here is my test results:

14:10:23 H8DEVW3>update t1 set row_num = 10 where row_num = 40000;
update t1 set row_num = 10 where row_num = 40000
*
ERROR at line 1:
ORA-00001: unique constraint (SYSADM.T1_PK) violated

Elapsed: 00:00:00.80

14:11:10 H8DEVW3>update t2 set row_num ='10' where row_num ='40000';
update t2 set row_num ='10' where row_num ='40000'
*
ERROR at line 1:
ORA-00001: unique constraint (SYSADM.T2_PK) violated

Elapsed: 00:00:00.80

In my test I found no time difference for searching a unique key in T1_PK and T2_PK.

However, the space required for T1_PK Index is less than that of T2_PK index.
BLOCKS NAME LF_ROWS LF_BLKS BR_BLKS BR_ROWS BTREE_SPACE USED_SPACE
---------- --------- ---------- ---------- ---------- ---------- ----------- ----------
4480 T1_PK 1890288 4070 7 4069 32599916 29262117

BLOCKS NAME LF_ROWS LF_BLKS BR_BLKS BR_ROWS BTREE_SPACE USED_SPACE
---------- --------- ---------- ---------- ---------- ---------- ----------- ----------
5120 T2_PK 1890288 4588 9 4587 36757900 32975669

T2_PK index needed an extra 518 (4588 - 4070) blocks for the leaf and an additional 2 blocks for the branch because of the varchar2 data type.

Certainly number data type requires less space than the varchar2 data type. Any serach on index requires minimum of 3 Logical I/Os. That is why I got the same elapsed time from both indexes. If I start searching 1000s rows using index, i will get different response time.

But if you are going to search a single row or less than 100 rows using index, then either data type will work efficiently. Please remember that defining a data type for a column is entirely dependant on application.