I never really saw the reason for having an ORM, why not just do your data logic in the database? Write procedures/functions/packages/triggers and handle everything there and it will almost always perform better than trying to do the same thing in application level code. Then have your application do simple SELECTs, INSERTs, and/or UPDATEs without the need for an ORM.
Well, if you need to do all three of these statements for a lot of tables there will be lots of code duplication. Therefore it would be good to create some metadata with things like column names and the corresponding types. As soon as you do that you have a baby ORM.
An application might be good as a display/interaction layer for an end user but not for performing complex data manipulation in a database, that's what SQL,procedural database languages, and ETL tools are for.