I am evaluating 12c and the concept of pdbs is quite new to me. I tried to copy some schemas and an apex application from my running 11g to a fresh installed 12c db. I had to rename my schemas by using the prefix c## to get it working. Obviously I used the CDB. This means, I have to change the usernames at some points of my plsqlcode as well.
Should I have created a PDB first? I do not intend to run multiple databases, so I think it is some useless overhead for me? On the other hand, I want to go the recommended way, as I use this database for learning purposes.
What do you think?
If you don't plan to create PDBs then don't select the 'Create as Container database' option when you install 12c.
Just create a standard DB.
But if you plan to 'learn' about the new multitenant architecture of 12c then you MUST RTFM. No matter how experienced you might be with Oracle you need to read those two chapters at a minimum. The new architecture is radically different. There are many basic things you do differently (users, privileges, connections, management). Of course you have to rename your schemas; you cannot create 'local' users in the CDB; those users need to be 'common' users. Don't know the difference; of course you don't until you read those two chapters that explain the difference.
That is just ONE reason why the docs are required reading as I first said a year ago in this thread:
Start with Chapters 17 and 18 of the Concepts Doc.
And BEFORE you tried to migrate your apex application you should have read about that topic to understand how that is done DIFFERENTLY for 12c.
Here is just one link: Application Express in Oracle Database 12c:
When you install Oracle Database 12c Multitenant Architecture, Oracle Application Express is installed into the multitenant container database by default. A single multitenant container database can have up to 252 pluggable databases (PDBs). The container database root (CDB$ROOT) includes an APEX_040200 schema which holds all of the common objects required for Application Express, including the Application Express engine packages, processes, functions and views. Therefore, there is only a single instance of these common objects across the whole database installation. The Application Express common objects, stored in the multitenant container database, are accessed from each PDB using meta-data links. Each PDB also includes an APEX_040200 schema which holds the Application Express meta-data tables for that specific PDB. These local tables ensure that the Application Express application definitions are maintained independently in each PDB. Each PDB must have a Web listener defined and is managed individually using the standard Oracle Application Express Instance Administration.
Because you didn't create a PDB your apex application had nowhere to go.