向OracleParameterCollection添加超过14个参数

时间:2016-05-02 08:56:46

标签: c# oracle

我在将数据插入表格时遇到问题。 桌子实际上非常大;它有超过100个领域, 我尝试使用C#和OracleParameterCollection(System.Data.OracleClient)设置参数,如下所示:

var param = new OracleParameter(":pEmpNo1", OracleType.Number);
param.Value = 1;
command.Parameters.Add(param);

param = new OracleParameter(":pEmpNo2", OracleType.Number);
param.Value = 2;
command.Parameters.Add(param);

param = new OracleParameter(":pEmpNo3", OracleType.Number);
param.Value = 3;
command.Parameters.Add(param);
    :
    :
param = new OracleParameter(":pEmpNo14", OracleType.Number);
param.Value = 14;
command.Parameters.Add(param);

param = new OracleParameter(":pEmpNo15", OracleType.Number);
param.Value = 15;
command.Parameters.Add(param);

我的SQL看起来像这样:

INSERT INTO MY_TABLE (
    pEmpNo1,
    pEmpNo2,
    pEmpNo3,
    pEmpNo4,
    pEmpNo5,
    pEmpNo6,
    pEmpNo7,
    pEmpNo8,
    pEmpNo9,
    pEmpNo10,
    pEmpNo11,
    pEmpNo12,
    pEmpNo13,
    pEmpNo14,
    pEmpNo15
) VALUES (
    :pEmpNo1,
    :pEmpNo2,
    :pEmpNo3,
    :pEmpNo4,
    :pEmpNo5,
    :pEmpNo6,
    :pEmpNo7,
    :pEmpNo8,
    :pEmpNo9,
    :pEmpNo10,
    :pEmpNo11,
    :pEmpNo12,
    :pEmpNo13,
    :pEmpNo14,
    :pEmpNo15
);

当我执行程序时,出现错误" ORA-01008:并非所有变量都绑定了#34;发生了。但是,当我减少添加小于15的参数时(例如,从我的SQL和oracleParameterCollection中删除" pEmpNo15")它可以正常工作。我不知道为什么,并且我想以某种方式向OracleParameterCollection添加超过14个参数。如果您有任何信息,请告诉我,提前谢谢!

更新 我更正了SQL示例代码(我删除了错误地插入&#34之前的最后一个逗号;)VALUES(")。我仍有同样的问题...

1 个答案:

答案 0 :(得分:0)

你的问题出在最后一栏" pEmpNo15," (注意逗号)它应该改为" pEmpNo15" (没有逗号)

您的查询应如下所示:

INSERT INTO MY_TABLE (
    pEmpNo1,
    pEmpNo2,
    pEmpNo3,
    pEmpNo4,
    pEmpNo5,
    pEmpNo6,
    pEmpNo7,
    pEmpNo8,
    pEmpNo9,
    pEmpNo10,
    pEmpNo11,
    pEmpNo12,
    pEmpNo13,
    pEmpNo14,
    pEmpNo15
) VALUES (
    :pEmpNo1,
    :pEmpNo2,
    :pEmpNo3,
    :pEmpNo4,
    :pEmpNo5,
    :pEmpNo6,
    :pEmpNo7,
    :pEmpNo8,
    :pEmpNo9,
    :pEmpNo10,
    :pEmpNo11,
    :pEmpNo12,
    :pEmpNo13,
    :pEmpNo14,
    :pEmpNo15
);