<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:$B%a%$%j%*(B
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<div>$B$O$8$a$^$7$F!#$h$m$7$/$*4j$$CW$7$^$9!#(B</div><div><br></div><div>Oracle11g(ODP.NET 2.111.6.20)</div><div>ASP.NET$B$G(BAOP$B$r;HMQ$7$F(BORACLE$B%9%H%"%I$r8F$S=P$7$F$$$^$9!#(B</div><div>$B3FDj5A$O0J2<$NDL$j$G$9!#(B</div><div><br></div><div><br></div><div>ITestDao.cs</div><div>&nbsp; &nbsp; [Bean(typeof(TestDaoEntity))]</div><div>&nbsp; &nbsp; public interface ITestDao</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; [Procedure("TESTPROC")]</div><div>&nbsp; &nbsp; &nbsp; &nbsp; void TESTPROC(out string p);</div><div>&nbsp; &nbsp; }</div><div><br></div><div>TestDaoEntity.cs</div><div>&nbsp; &nbsp; public class TestDaoEntity</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; //$B%9%H%"%I8F$S=P$7MQ(BDAO$B$N$?$a$N%@%_!<%(%s%F%#%F%#(B</div><div>&nbsp; &nbsp; }</div><div><br></div><div>CREATE OR REPLACE PROCEDURE TESTPROC(p OUT VARCHAR2)</div><div>IS</div><div>BEGIN</div><div>&nbsp; &nbsp; p := '';</div><div>END;</div><div><br></div><div><br></div><div>$B$3$N$H$-!"(BTESTPROC$B$N=PNO%Q%i%a!<%?$K(B''($BD9$5%<%m$NJ8;zNs(B)$B$r%;%C%H$9$k$H!"0J2<$NNc30$,H/@8$7$^$9!#2?$+CM$,%;%C%H$5$l$F$$$l$PNc30$OH/@8$7$^$;$s!#(B</div><div><br></div><div>System.InvalidCastException $B$O%f!<%6!<(B $B%3!<%I$K$h$C$F%O%s%I%k$5$l$^$;$s$G$7$?!#(B</div><div>&nbsp; Message=$B0z?t$NLa$jCM$N7?$,L58z$G$9!#(B</div><div>&nbsp; Source=mscorlib</div><div>&nbsp; StackTrace:</div><div>&nbsp; &nbsp; &nbsp; &nbsp;$B>l=j(B System.Runtime.Remoting.Proxies.RealProxy.ValidateReturnArg(Object arg, Type paramType)</div><div>&nbsp; &nbsp; &nbsp; &nbsp;$B>l=j(B System.Runtime.Remoting.Proxies.RealProxy.PropagateOutParameters(IMessage msg, Object[] outArgs, Object returnValue)</div><div>&nbsp; &nbsp; &nbsp; &nbsp;$B>l=j(B System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)</div><div>&nbsp; &nbsp; &nbsp; &nbsp;$B>l=j(B System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)</div><div>&nbsp; InnerException:&nbsp;</div><div><br></div><div>Seasar.Framework.Aop.Proxy</div><div>AopProxy.cs</div><div>&nbsp; &nbsp; &nbsp; &nbsp; public override IMessage Invoke(IMessage msg)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; $B!AN,!A(B</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IMethodReturnMessage mrm = new ReturnMessage(ret, methodArgs, methodArgs.Length,</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; methodMessage.LogicalCallContext, (IMethodCallMessage) msg);</div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return mrm;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div><br></div><div><br></div><div>$B@5>o%Q%?!<%s$H8+Hf$Y$?$H$3$m(Bmrm.OutArgs$B$,(BSystem.DBNull$B$N$H$-$KNc30$H$J$k$3$H$,$o$+$C$?$N$G!"(B</div><div>$B%9%H%"%I$NLa$jCM$r<h$j=P$9=hM}$K(B&gt;$B$N9T$rDI2C$7$F$_$^$7$?!#(B</div><div><br></div><div>Seasar.Dao.Impl.ObjectBasicProcedureHandler.cs</div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Out$B$^$?$O(BInOut$B%Q%i%a!<%?CM$r<hF@$9$k(B</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i &lt; args.Length; i++)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (ArgumentDirection[i] == ParameterDirection.InputOutput ||</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ArgumentDirection[i] == ParameterDirection.Output)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DbType dbType = GetDbValueType(ArgumentTypes[i]);</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((dbType == DbType.String) &amp;&amp; ((IDataParameter)cmd.Parameters[i + cnt]).Value is System.DBNull)</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;args[i] = "";</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; args[i] = ((IDataParameter)cmd.Parameters[i + cnt]).Value;</div><div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div><br></div><div><br></div><div>$B$3$l$G$H$j$"$($:Nc30$O2sHr$G$-$?$N$G$9$,!"$=$b$=$b$3$N$d$jJ}$GNI$$$N$+!"$h$jNI$$!JIaDL$N!K$d$jJ}$,$"$k$N$+!"<ALd$5$;$FD:$$$?<!Bh$G$9!#(B</div><div>$B$h$m$7$/$*4j$$CW$7$^$9!#(B</div><div><br></div>                                               </div></body>
</html>