On this topic, my understanding has been that Oracle cannot cache the  
query when the parameters change.

So, when you do

<cfquery>
INSERT INTO MYTABLE
(
MYCOLUMN
<cfif Len(Trim(myAValue))>,MYACOLUMN</cfif>
<cfif Len(Trim(myBValue))>,MYBCOLUMN</cfif>
<cfif Len(Trim(myCValue))>,MYCCOLUMN</cfif>
<cfif Len(Trim(myDValue))>,MYDCOLUMN</cfif>
)
VALUES
(
<cfqueryparam value="#myValue#">
<cfif Len(Trim(myAValue))>,<cfqueryparam value="#myAValue#"></cfif>
<cfif Len(Trim(myBValue))>,<cfqueryparam value="#myBValue#"></cfif>
<cfif Len(Trim(myCValue))>,<cfqueryparam value="#myCValue#"></cfif>
<cfif Len(Trim(myDValue))>,<cfqueryparam value="#myDValue#"></cfif>]
)
</cfquery>

Oracle cannot cache the query if the insert statement itself changes  
whenever a parameter is avoided due to being null.

On the other hand I think that:

<cfquery>
INSERT INTO MYTABLE
(
MYCOLUMN
,MYACOLUMN
,MYBCOLUMN
,MYCCOLUMN
,MYDCOLUMN
)
VALUES
(
<cfqueryparam value="#myValue#">
<cfif Len(Trim(myAValue))>,<cfqueryparam  
value="#myAValue#"><cfelse>NULL</cfif>
<cfif Len(Trim(myBValue))>,<cfqueryparam  
value="#myBValue#"><cfelse>NULL</cfif>
<cfif Len(Trim(myCValue))>,<cfqueryparam  
value="#myCValue#"><cfelse>NULL</cfif>
<cfif Len(Trim(myDValue))>,<cfqueryparam  
value="#myDValue#"><cfelse>NULL</cfif>]
)
</cfquery>

may cache properly.

Does anyone have any insight into whether or not this is true?

Allen

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:329559
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to