This is the location of the most up-to-date version of the unofficial Oracle Schema Provider for CodeSmith. Thanks goes out to Michael Toscano (aka VikingCoder) for starting a new Oracle provider based solely on the System.Data.OracleClient namespace.
To "install" the provider, review the included readme.txt.
RANDOM NOTES:
The CommandSchema objects returned from the provider will now have the following properties:
- CS_ObjectType (i.e "PACKAGE")
- CS_Status (i.e. "VALID", "INVALID")
- CS_ObjectId (OBJECT_ID of PACKAGE where command resides)
- CS_OverloadNumber (will be -1 if no overload exists, or a number > 0 if overloads are present)
- CS_FullName (will contain the original "raw" command name prefixed with the owner).
- CS_Name (will contain the original "raw" command name)
To support overloads in Oracle, the provider reports the Command.Name property as CUSTOMER.MODIFY[1], CUSTOMER.MODIFY[2], and so on. What this means is that in order for you to write templates that will handle overloaded Oracle procedures correctly, you'll need to use the CS_Name extended property value of the CommandSchema object instead of the Name property.
I have added support for SQL Server-like extended properties through creation of a CODESMITH_EXTENDED_PROPERTIES table (which is automatically excluded from the list returned by GetTables, by the way). This is a very powerful feature and I have already started putting it to great use for allowing fine grained control of certain aspects of my PL/SQL generation process (i.e. defining lookup tables and columns, being able to exclude certain columns from all procedure signatures, like CREATEDATE and MODIFIEDDATE, and to provide defaults for those values when they're excluded). The possibilities are endless.