Oracle 9i and Oracle 10g....there are more implementation differences. In terms of architecture, 9i is based on Internet technology while 10g is grid computing based one. Many DBA features like Automated Storage Management (ASM), Automatic Workload Repository (AWR), Automatic Database Diagnostic Monitor (ADDM) were introduced.
For developers, 10g is more stable than 9i. All the earlier bugs reported were fixed in 10g release.
Performance wise, it was more impressive. It increased the data chunk size during I/O between the SQL and PL/SQL engines. Use of collections was recommended.
PLS_INTEGER, a new data type was added which enhances performance. ANYDATA data type was introduced to hold a data of variant feature.
FLASHBACK option was made more stronger like TABLE FLASHBACK was introduced. Regular expression function were introduced REGEXP_SUBSTR, REGEXP_INSTR, REGEXP_REPLACE.
Oracle Recyclebin was introduced. The dropped objects can be restored from the recyclebin until it is purged.