Are you sure, you are looking for the primary key of a view ?
The reason I'm asking is, that constraints on views have a different implementation than constraints on i.e. tables:
Constraints on views are used in data warehousing to ease the work of the optimizer and are NOT ENFORCED and NOT VALIDATED by Oracle (to be exact: they are only enforced and validated if they are a subset of a constraint on the table and the table constraint is enabled, which is pretty trivial).
If that is what you want, just can query users_constraints:
SQL> create table test (a number constraint pk_test primary key, b varchar2(10));
Table created.
SQL> create view v_test as select * from test;
View created.
SQL> alter view v_test add constraint pk_v_test primary key (a) disable novalidate;
View altered.
SQL> select constraint_name, constraint_type
2 from user_constraints where table_name = 'V_TEST';
CONSTRAINT_NAME C
------------------------------ -
PK_V_TEST P
If you are looking for the primary keys of the UNDERLYING tables, you might want to look into this (if you are working with views on tables in other schemas, you have to use the all_* views instead of the users_* views in the query below):
SQL> create table test_detail
2 ( id number constraint pk_test_detail primary key
3 ,det_col varchar2(10)
4 ,test_id number constraint fk_test references test(a)
5 );
Table created.
SQL> create or replace view v_test as
2 select a,b,id,detail from test t, test_detail d where t.a = d.id;
View created.
SQL> set col "TAB.COL" for a50
SQL> select cc.table_name || '.' || cc.column_name "TAB.COL"
2 from user_constraints c
3 ,user_cons_columns cc
4 ,user_dependencies d
5 where d.name = 'V_TEST'
6 and c.table_name = d.referenced_name
7 and c.constraint_type = 'P'
8 and cc.owner = c.owner
9 and cc.constraint_name = c.constraint_name
10 ;
TAB.COL
--------------------------
TEST.A
TEST_DETAIL.ID