补充:错误提示信息:System.Data.OracleClient.OracleException: ORA-12571: TNS:包写入程序失败

解决方案 »

  1.   

    //增加参数
    cmd.Parameters.Add("MSISDN",OracleType.VarChar,100);
    cmd.Parameters.Add("SHORTMSG",OracleType.VarChar,100);
    试下
      

  2.   

    一个中文在oracle中占2个字符
    在c#中占一个字符
      

  3.   

    这个存储过程很眼熟,  :)
    select length('我') from dual;  --返回1
    select lengthb('我') from dual  --返回2
      

  4.   

    已经改成:OracleType.VarChar,100
    还是不行呀!
    受不了了!
    嘿嘿!
      

  5.   

    ORA-12571: TNS:包写入程序失败
    这种错误有人说可能Kv3000的问题,所以,我也把我的杀毒软件Norton给载了,可还是没有用呀。
      

  6.   

    可能是你的 cmd.CommandText = spName; 
    这句话当中 spName 可能不仅仅需要写存储过程名,要把包的名字也要写出来吧。
    比如 
         string spName = "XXX.ADDSMS";
         cmd.CommandText = spName; 
    你可以试试。我想问题应该在此。
      

  7.   

    你要把存储过程放到包中,然后在C#代码中把
    “string spName = "ADDSMS";”改成:
    “string spName = "包名.ADDSMS";”
    这样就OK了。
    我以前玩过。