I actually haven't tried running NPetshop on Oracle. :-P
Roberto
On 7/21/05, Tony Wang <[EMAIL PROTECTED]> wrote:
Hello Everyone,
I just installed the NPetshop and (without too much effort) making It
fully working with SQL Server. However, when I switch database to
Oracle, It becomes harder. I have Oracle9i database server running on
NT.
And have tried ODP.NET 9.2 and ODP.NET 10.4 got the same result.
The problem is on the Mapper:
<select id="GetProductListByCategory"
cacheModel="ProductList-cache" resultMap="ProductList"
parameterClass="string">
select
Product_Id,
Product_Name,
Product_Description,
P.Category_Id,
Category_Name,
Category_Description
from Products P, Categories C
where C.Category_ID= P.Category_ID and
P.Category_Id = #value#
</select>
The server log shows Ibatis send the following statement:
select
Product_Id,
Product_Name,
Product_Description,
P.Category_Id,
Category_Name,
Category_Description
from Products P, Categories C
where C.Category_ID= P.Category_ID and
P.Category_Id = :value
Which always return an empty dataset. I wonder Ibatis should directly
replace
#value# to the constant (like 'FISH') or sedning the value as a
parameter to :value?
Please help me out.
Thanks,
Follow is the provider.config section for the test.
<provider
name="oracle9.2"
description="Oracle, Oracle provider V9.2.0.401"
enabled="true"
assemblyName="Oracle.DataAccess, Version=9.2.0.401,
Culture=neutral, PublicKeyToken=89b483f429c47342"
connectionClass="Oracle.DataAccess.Client.OracleConnection"
commandClass="Oracle.DataAccess.Client.OracleCommand "
parameterClass="Oracle.DataAccess.Client.OracleParameter"
parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
parameterDbTypeProperty="OracleDbType"
dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "false"
parameterPrefix=":"
useDeriveParameters="false"
/>
<provider
name="oracle10.4"
enabled="false"
assemblyName="Oracle.DataAccess, Version=10.1.0.4.0,
Culture=neutral, PublicKeyToken=89b483f429c47342"
connectionClass="Oracle.DataAccess.Client.OracleConnection"
commandClass="Oracle.DataAccess.Client.OracleCommand "
parameterClass="Oracle.DataAccess.Client.OracleParameter"
parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
parameterDbTypeProperty="OracleDbType"
dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "false"
parameterPrefix=":"
useDeriveParameters="false"
/>
<database>
<provider name="oracle9.2"/>
<dataSource name="NPetshop" connectionString="Data
Source=QGPet;Persist Security Info=False;User
ID=NPETSHOP;Password=npetshop;min pool size=3;max pool size=50"/>
</database>

