The convert functions work on a "'search','replace'", or "'search','replace','search','replace'" basis, so you have to make sure that all paths in the source DB 'search' have a destination path 'replace'.

I would suggest that your convert parameter are not actually set to what you think they are.

contents of Memory Script:{ set until scn 673031; set newname for datafile 1 to "/u01/app/oracle/oradata/vbox3/system01.dbf"; set newname for datafile 2 to "/u01/app/oracle/oradata/vbox3/undotbs01.dbf"; set newname for datafile 3 to "/u01/app/oracle/oradata/vbox3/sysaux01.dbf"; set newname for datafile 4 to "/u01/app/oracle/oradata/vbox3/users01.dbf"; set newname for datafile 5 to "/u01/app/oracle/oradata/vbox3/example01.dbf"; set newname for datafile 6 to 31,1 11%"/u01/app/oracle/oradata/vbox3/ggs_data01.dbf"; restore check readonly clone database ;}executing Memory Script

Tim, is it advisable we actually just create a pfile from the primary/ target database and copy to the secondary/ auxiliary side, of course, we also need to edit certain parameters, before we use it to start the instance.

In my article we are duplicating to a different machine with the same file system, so we don't have to bother with a fill pfile. Notice the duplicate command include the SPFILE clause, meaning we will transfer the SPFILE as part of the process. In this case adding more parameter to the pfile is pointless as all the parameter we need are in the SPFILE.

If you are not planning on pulling across the SPFILE, for example because you are cloning to the same machine and need different parameter values, it makes sense to manually create the pfile or spfile with the correct values in advance. I will add this statement to the article to make it more clear.