【问题标题】:How to Call Oracle Function Using Asp.net Web Api如何使用 Asp.net Web Api 调用 Oracle 函数
【发布时间】:2019-06-02 18:34:48
【问题描述】:

我正在处理一个项目,我想使用 Asp.Net Web API 调用 Oracle 函数。目前我正在使用 StoredProcedure 并且工作正常。我希望如果我的记录提交,那么它会给我一些返回值。我的 ASp.NEt web Api 代码和 Oracle 函数如下:

 for (int i = 0; i < user.Count; i++)
            {

                var sParameter = new List<OracleParameter>();
                sParameter.Add(new OracleParameter { ParameterName = "@CRD_COD", Value = user[i].CRD_COD });
                sParameter.Add(new OracleParameter { ParameterName = "@ITM_COD", Value = user[i].ITM_COD });
                sParameter.Add(new OracleParameter { ParameterName = "@SRL_NUM", Value = user[i].SRL_NUM });
                sParameter.Add(new OracleParameter { ParameterName = "@UOM_ABR", Value = user[i].UOM_ABR });
                sParameter.Add(new OracleParameter { ParameterName = "@QTD_RTE", Value = user[i].QTD_RTE });
                sParameter.Add(new OracleParameter { ParameterName = "@QTY_PRC", Value = user[i].QTY_PRC });
                sParameter.Add(new OracleParameter { ParameterName = "@QTN_NUM", Value = user[i].QTN_NUM });
                sParameter.Add(new OracleParameter { ParameterName = "@PMT_FLG", Value = user[i].PMT_FLG });
                sParameter.Add(new OracleParameter { ParameterName = "@TAX_FLG", Value = user[i].TAX_FLG });
                sParameter.Add(new OracleParameter { ParameterName = "@DLV_FLG", Value = user[i].DLV_FLG });                    
                result = Convert.ToInt32(ADOManager.Instance.ExecuteNonQuery("NML.AddProduct", CommandType.Text, sParameter));                
           }

这里是Oracle函数

CREATE OR REPLACE FUNCTION NML.AddProduct(V_CRD_COD In varchar2,
                                        V_ITM_COD In varchar2,
                                        V_SRL_NUM In varchar2,
                                        V_UOM_ABR IN varchar2,
                                        V_QTD_RTE IN varchar2,
                                        V_QTY_PRC In varchar2,
                                        V_QTN_NUM IN varchar2,
                                        V_PMT_FLG IN varchar2,
                                        V_TAX_FLG IN varchar2,
                                        V_DLV_FLG IN varchar2
                                        )
                                        RETURN NUMBER                                      
IS

开始 IF SQL%FOUND THEN 返回(1); 别的 返回(1);
万一; 其他人则例外
返回(1); 结束;

任何帮助将不胜感激。非常感谢

【问题讨论】:

    标签: asp.net database oracle asp.net-web-api oracle-sqldeveloper


    【解决方案1】:

    您是否尝试执行调用该函数的 select 语句?

    .ExecuteScalar("SELECT NML.AddProduct(V_CRD_COD, V_ITM_COD, V_SRL_NUM, V_UOM_ABR, V_QTD_RTE, V_QTY_PRC, V_QTN_NUM, V_PMT_FLG, V_TAX_FLG, V_DLV_FLG) FROM DUAL")

    【讨论】:

    • Select * from myfunction(customerid) from customer
    • 先生,我必须更新我在我的 api 中不使用 select 语句的数据。我必须调用一个函数并且必须将它的返回值存储在一个变量中
    • obj = cmd.ExecuteScalar("SELECT NML.AddProduct(V_CRD_COD , V_ITM_COD , V_SRL_NUM , V_UOM_ABR , V_QTD_RTE , V_QTY_PRC , V_QTN_NUM , V_PMT_FLG , V_TAX_FLG , V_DLV_FLG ) FROM DUAL"
    • MyFunction( 在 oracale 数据库 (TOAD) 中,因为我们称存储过程相同,我想调用函数但不知道语法
    • 更新NML.pgi_00_13设置UOM_ABR = V_UOM_ABR,QTD_RTE = V_QTD_RTE,QTY_PRC = V_QTY_PRC,QTN_NUM = V_QTN_NUM,PMT_FLG = V_PMT_FLG,TAX_FLG = V_TAX_FLG,DLV_FLG = V_DLV_FLG其中CRD_COD = V_CRD_COD AND ITM_COD = V_ITM_COD AND SRL_NUM =V_SRL_NUM;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多