LLBLGen and Oracle

Posts   
 
    
jovball
User
Posts: 443
Joined: 23-Jan-2005
# Posted on: 01-Mar-2007 15:38:12   

This post is directed at Frans but I'd certainly be interested in any other answers.

I will be doing some .NET introduction training for a large organization that is migrating from ASP to ASP.NET. They use some SQL Server databases but are mostly an Oracle shop. I'm a SQL Server guy, definitely not an Oracle expert.

I'm putting together some recommendations for books and tools for them. I plan to include LLBLGen on that list but I don't know Oracle well enough to defend the dynamic SQL issue. So it would be helpful to me to have some talking points for LLBLGen and Oracle.

In particular, what is LLBLGen doing with bind variables? I searched the forums and didn't come with any hits. Any other information would be worthwhile too.

Also, if any forum users are working with Oracle and would allow me to list your company name, I'd be interested in that too.

Joel Reinford Data Management Solutions LLC

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39927
Joined: 17-Aug-2003
# Posted on: 01-Mar-2007 22:38:40   

jovball wrote:

This post is directed at Frans but I'd certainly be interested in any other answers.

I will be doing some .NET introduction training for a large organization that is migrating from ASP to ASP.NET. They use some SQL Server databases but are mostly an Oracle shop. I'm a SQL Server guy, definitely not an Oracle expert.

I'm putting together some recommendations for books and tools for them. I plan to include LLBLGen on that list but I don't know Oracle well enough to defend the dynamic SQL issue. So it would be helpful to me to have some talking points for LLBLGen and Oracle.

In particular, what is LLBLGen doing with bind variables? I searched the forums and didn't come with any hits. Any other information would be worthwhile too.

All generated oracle queries use parameters, e.g. :customerID, which are the bind variables you're talking about. They're the same as @param on sqlserver, and the principle is the same: the query is generic: it's the same for all values specified for the parameters, so execution plans can be re-used, which greatly enhances performance.

The one thing we don't support is value arrays. Oracle has (it's somewhat limited though, but it looks great on paper wink ) a feature where you can pass in an array of values or arrays of values and per index an insert or whatever statement is executed, so you can execute multiple statements with a single roundtrip. This isn't supported by llblgen pro because it doesn't support batching in the generic query execution code as in: collect as much insert statements (or update statements for example) as possible and then execute them in one go.

Normally this isn't a problem though.

Be sure to look into type converters, it can allow the usage of .NET types which aren't directly supported by oracle or ODP.NET, for example booleans.

Frans Bouma | Lead developer LLBLGen Pro