调试时出错
错误提示:ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'ADDNEWSMS' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored调用存储过程往表里面填加数据,程序中的参数类型和个数和储存过程中的都是一样
有谁知道这是什么原因吗?谢谢!CREATE OR REPLACE PROCEDURE AddNewSMS
(
in_YWDM in SMS.YWDM%TYPE,
in_MSGID in SMS.MSGID%TYPE,
in_DESTNUM in SMS.DESTNUM%TYPE,
in_MSGBODY in SMS.MSGBODY%TYPE,
in_ZT in SMS.ZT%TYPE,
in_BZ in SMS.BZ%TYPE,
in_PLANTIME in VARCHAR2
)C#程序:public void SpExeFor(string m_YWDM,int m_MSGID,string m_DESTNUM,
string m_MSGBODY, int m_ZT,string m_BZ, string m_PLANTTIME)
{
//存储过程的参数声明
OracleParameter[] parameters={
new OracleParameter("in_YWDM",OracleType.VarChar,20),
new OracleParameter("in_MSGID",OracleType.Int32),
new OracleParameter("in_DESTNUM",OracleType.Char,11),
new OracleParameter("in_MSGBODY",OracleType.VarChar,140),
new OracleParameter("in_ZT",OracleType.Int32),
new OracleParameter("in_BZ",OracleType.VarChar,200),
new OracleParameter("in_PLANTTIME",OracleType.VarChar,30)
};
parameters[0].Value=m_YWDM;
parameters[1].Value=m_MSGID;
parameters[2].Value=m_DESTNUM;
parameters[3].Value=m_MSGBODY;
parameters[4].Value = m_ZT;
parameters[5].Value=m_BZ;
parameters[6].Value=m_PLANTTIME; parameters[0].Direction=ParameterDirection.Input;
parameters[1].Direction=ParameterDirection.Input;
parameters[2].Direction=ParameterDirection.Input;
parameters[3].Direction=ParameterDirection.Input;
parameters[4].Direction=ParameterDirection.Input;
parameters[5].Direction=ParameterDirection.Input;
parameters[6].Direction=ParameterDirection.Input;
try
{
RunProcedure("AddNewSMS", parameters);
// return parameters[1].Value.ToString();
}
catch(Exception e)
{
throw e;
}
}
调用过程: string ywdm="JWT";
int msgId=11;
string destnum="13787209648";
string msgbody="你好";
int zt=0;
string bz="一般";
string planTime ="2007-11-20 9:06:23";
SpExeFor(ywdm, msgId, destnum, msgbody, zt, bz, planTime);
错误提示:ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'ADDNEWSMS' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored调用存储过程往表里面填加数据,程序中的参数类型和个数和储存过程中的都是一样
有谁知道这是什么原因吗?谢谢!CREATE OR REPLACE PROCEDURE AddNewSMS
(
in_YWDM in SMS.YWDM%TYPE,
in_MSGID in SMS.MSGID%TYPE,
in_DESTNUM in SMS.DESTNUM%TYPE,
in_MSGBODY in SMS.MSGBODY%TYPE,
in_ZT in SMS.ZT%TYPE,
in_BZ in SMS.BZ%TYPE,
in_PLANTIME in VARCHAR2
)C#程序:public void SpExeFor(string m_YWDM,int m_MSGID,string m_DESTNUM,
string m_MSGBODY, int m_ZT,string m_BZ, string m_PLANTTIME)
{
//存储过程的参数声明
OracleParameter[] parameters={
new OracleParameter("in_YWDM",OracleType.VarChar,20),
new OracleParameter("in_MSGID",OracleType.Int32),
new OracleParameter("in_DESTNUM",OracleType.Char,11),
new OracleParameter("in_MSGBODY",OracleType.VarChar,140),
new OracleParameter("in_ZT",OracleType.Int32),
new OracleParameter("in_BZ",OracleType.VarChar,200),
new OracleParameter("in_PLANTTIME",OracleType.VarChar,30)
};
parameters[0].Value=m_YWDM;
parameters[1].Value=m_MSGID;
parameters[2].Value=m_DESTNUM;
parameters[3].Value=m_MSGBODY;
parameters[4].Value = m_ZT;
parameters[5].Value=m_BZ;
parameters[6].Value=m_PLANTTIME; parameters[0].Direction=ParameterDirection.Input;
parameters[1].Direction=ParameterDirection.Input;
parameters[2].Direction=ParameterDirection.Input;
parameters[3].Direction=ParameterDirection.Input;
parameters[4].Direction=ParameterDirection.Input;
parameters[5].Direction=ParameterDirection.Input;
parameters[6].Direction=ParameterDirection.Input;
try
{
RunProcedure("AddNewSMS", parameters);
// return parameters[1].Value.ToString();
}
catch(Exception e)
{
throw e;
}
}
调用过程: string ywdm="JWT";
int msgId=11;
string destnum="13787209648";
string msgbody="你好";
int zt=0;
string bz="一般";
string planTime ="2007-11-20 9:06:23";
SpExeFor(ywdm, msgId, destnum, msgbody, zt, bz, planTime);
解决方案 »
- oracle 10G自动备份
- ORA-01445: cannot select ROWID from, or sample, a join view without a key-preser
- Oracle 错误 PLS-00103 存储过程实验
- 紧急求救:mfc访问oracle的number类型字段出现小数百分位丢失的问题?
- Oracele 存储过程 游标循环?
- ORACLE里如何把0701111101变成2007-01-11 11:01
- 将数据拿出来排序问题,高手请进
- 文本文件(*.txt)中的数据可以导入到oracle数据库中么,怎么实现的??急急急
- Linux下Oracle 8i字符集设置的问题!
- oracle exp 远程导出数据报错 EXP-00056: 遇到 ORACLE 错误 12514
- Oracle里in和左联的问题
- PETCH *** INTO ****; 的错误,请高手指点啊
new OracleParameter( "in_MSGID ",OracleType.Int32),
new OracleParameter( "in_DESTNUM ",OracleType.Char,11),
new OracleParameter( "in_MSGBODY ",OracleType.VarChar,140),
new OracleParameter( "in_ZT ",OracleType.Int32),
new OracleParameter( "in_BZ ",OracleType.VarChar,200),
new OracleParameter( "in_PLANTTIME ",OracleType.VarChar,30) 应该是这段的类型有错误,试着把Int32改为Int64看看!