Way 1: If the following command returns a value then the database has been started using a spfile, else pfile was used during startup.
SQL> show parameter spfile
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
spfile string
Way 2: Alter the system using the scope=spfile clause, if it returns error then pfile is used. Please see the following example.
SQL> alter system set open_cursors=300 scope=spfile;
alter system set open_cursors=300 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup
SQL> show parameter spfile
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
spfile string
Way 2: Alter the system using the scope=spfile clause, if it returns error then pfile is used. Please see the following example.
SQL> alter system set open_cursors=300 scope=spfile;
alter system set open_cursors=300 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup