gpt4 book ai didi

c# - ORA-00900 : invalid SQL statement while filling DataAdapter with Dataset. C# ASP.net

转载 作者:行者123 更新时间:2023-11-30 17:48:30 25 4
gpt4 key购买 nike

我正在使用 VS'12 ASP.net 4.5 和 oracle 10.2.0.1

这是我出现异常的代码。

Agreement agreement = null;

using (OracleConnection MyConn = new BaseRepository().GetConnection())
{

MyConn.Open();
OracleCommand commOracle = new OracleCommand("PACKAGE_AGREEMENT.USP_GET_AGREEMENT_BY_ID", MyConn);


VendorRepository vendorRepository = new VendorRepository();

commOracle.Parameters.Add("SP_AGREEMENT_ID", OracleDbType.Int32, Agreementid, System.Data.ParameterDirection.Input);
commOracle.Parameters.Add("SP_CUR_AGREEMENT", OracleDbType.RefCursor, ParameterDirection.Output);

OracleDataAdapter daOracle = new OracleDataAdapter(commOracle);
DataSet dsOracle = new DataSet();

daOracle.Fill(dsOracle);//Here the exception arises.


if (dsOracle.Tables[0].Rows[0] != null)
{
DataRow row = dsOracle.Tables[0].Rows[0];
agreement = new Agreement();

agreement.pkAgreementId = Convert.ToInt32(row["pkAgreementId"]);
agreement.Vendor = vendorRepository.GetById(Convert.ToInt32(row["fkVendorId"]));
agreement.IsActive = row["IsActive"].ToString() == "N" ? false : true;
agreement.IsDeleted = row["IsDeleted"].ToString() == "N" ? false : true;
agreement.RentalAmount = Convert.ToInt32(row["RentalAmount"]);
agreement.VehicleCost = Convert.ToInt32(row["VehicleCost"]);
agreement.DateOfAgreement = Convert.ToDateTime(row["DateOfAgreement"]);
agreement.DateCreated = Convert.ToDateTime(row["DateCreated"]);
agreement.DateModified = Convert.ToDateTime(row["DateModified"]);

}
}

我的包 PACKAGE_AGREEMNET 规范:

create or replace PACKAGE PACKAGE_AGREEMENT AS TYPE REF_CURSOR IS REF CURSOR; PROCEDURE USP_GET_AGREEMENT_BY_ID(SP_AGREEMENT_ID IN NUMBER, SP_CUR_AGREEMENT OUT REF_CURSOR);  END PACKAGE_AGREEMENT;

包体:

create or replace PACKAGE BODY PACKAGE_AGREEMENT AS PROCEDURE USP_GET_AGREEMENT_BY_ID(SP_AGREEMENT_ID IN NUMBER, SP_CUR_AGREEMENT OUT REF_CURSOR) IS BEGIN OPEN SP_CUR_AGREEMENT FOR SELECT "Agreement".*, ora_rowscn as TimeStamp FROM "Agreement" WHERE "pkAgreementId" = SP_AGREEMENT_ID AND "IsDeleted" = 'N'; END USP_GET_AGREEMENT_BY_ID; END PACKAGE_AGREEMENT;

现在,如果我在 visual studio 中运行包(数据连接)。它编译没有错误,也没有警告。我不知道问题出在哪里。

请帮忙。

提前致谢。

最佳答案

你有没有在执行之前设置你的命令类型??

关于c# - ORA-00900 : invalid SQL statement while filling DataAdapter with Dataset. C# ASP.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com