我正在从ASP.NET SqlDataSource调用包中的存储过程,但是我不断收到以下错误。在Oracle |中登录存储过程错误:PLS-00306
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'VALIDATE_USER_PRC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我的存储过程是这样的:
PROCEDURE VALIDATE_USER_PRC(P_APPLICATIONNAME IN TBL_USERS.APPLICATIONNAME%TYPE,
P_USERNAME IN TBL_USERS.USERNAME%TYPE,
P_PASSWORD IN TBL_USERS.USERPASSWORD%TYPE,
P_RESULTS OUT NUMBER)
IS
BEGIN
SELECT COUNT(*) INTO P_RESULTS FROM TBL_USERS WHERE USERNAME=P_USERNAME
AND (USERPASSWORD=P_PASSWORD)
AND APPLICATIONNAME=P_APPLICATIONNAME;
END VALIDATE_USER_PRC;
它在我的包PARENT_USER_API被声明。
- TBL_USERS.APPLICATIONNAME%TYPE = VARCHAR2(255)
- TBL_USERS.USERNAME%TYPE = VARCHAR2(255)
- TBL_USERS.USERPASSWORD%TYPE = VARCHAR2(128)
最后我的ASP.NET代码看起来像这样:
<asp:SqlDataSource ID="dsLogin" runat="server" CancelSelectOnNullParameter="false"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="PARENT_USER_API.VALIDATE_USER_PRC" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="P_APPLICATIONNAME" DefaultValue="/PortailParent" Type="String" />
<asp:ControlParameter ControlID="txtUser" Name="P_USERNAME" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="txtPass" Name="P_USERPASSWORD" PropertyName="Text" Type="String" />
<asp:Parameter Name="P_RESULTS" Direction="Output" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
我的推理使用R_RESULTS是查看是否有任何行返回给定的用户名和密码,以验证试图登录的用户。
谁能告诉我我做错了什么?我搜索了几个小时,并尝试了几件没有运气的东西。非常感谢!
我已经试过DbType已经没有运气。我也尝试过使用Decimal和Double。感谢您的快速反应! – MPaul 2013-04-09 14:38:42
你见过这个吗? http://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleDbTypeEnumerationType.htm – Jeyvison 2013-04-09 14:43:56
是的,我看了它,当你先前发布它,但改为十进制,双或任何其他数字类型didn不幸的是不能解决问题 – MPaul 2013-04-09 14:54:10