ASP.NET SqlDataSource からパッケージ内のストアド プロシージャを呼び出していますが、次のエラーが引き続き発生します。
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を使用する理由は、ログインしようとしているユーザーを検証するために、指定されたユーザー名とパスワードで行が返されるかどうかを確認することです。
誰が私が間違っているのか教えてもらえますか? 私は何時間も検索し、いくつかのことを試しましたが、まだ運がありません. どうもありがとう!