make oracle supports generated keys and refine dialects

base on discussions of PR #652,this PR doesn't effect early oracle dialect,just add a new Oracle12cDialect.