[分享]MYSQL Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 6_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2922 | 回复: 0   主题: [分享]MYSQL Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 6        下一篇 
tk
注册用户
等级:中士
经验:207
发帖:80
精华:0
注册:2011-10-19
状态:离线
发送短消息息给tk 加好友    发送短消息息给tk 发消息
发表于: IP:您无权察看 2014-12-8 10:31:54 | [全部帖] [楼主帖] 楼主

很明显的,存储过程中发生参数的问题,检查了很久,发现参数的数据及值都是正确的,想了很久,有可能是因为使用了非正式的字符形成了,所以英文字符下重建了此过程,执行后,发现完成没问题,在此记录一下。

其他,在程序调用出错时,我在SQLYOG 内进行了测试,发生是完整的,无错误的.或许是那个测试版本的SQLyog有问题.

{"Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 6, got 1"}
[MySql.Data.MySqlClient.MySqlException]: {"Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 6, got 1"}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: "Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 6, got 1"
Source: "MySql.Data"


    StackTrace: "   在 MySql.Data.MySqlClient.MySqlStream.OpenPacket()\r\n   在 MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)\r\n   在 MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()\r\n   在 MySql.Data.MySqlClient.MySqlDataReader.NextResult()\r\n   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)\r\n   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()\r\n   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()\r\n   在 Nie.Data.MYYSQL.ExecuteStoredCommand(String procedureName, String[,] ps)\r\n   在 Nie.Data.MYSQLSTATIC.cmdStoredRun(String pn, String[,] ps)"

TargetSite: {Void OpenPacket()}
{MySql.Data.MySqlClient.MySqlCommand}
base {System.Data.Common.DbCommand}: {MySql.Data.MySqlClient.MySqlCommand}
CommandText: "mail_Add"
CommandTimeout: 30
CommandType: StoredProcedure
Connection: {MySql.Data.MySqlClient.MySqlConnection}
DesignTimeVisible: true
IsPrepared: false
LastInsertedId: 0
Parameters: {MySql.Data.MySqlClient.MySqlParameterCollection}
Transaction: null
UpdatedRowSource: Both
DELIMITER $$
USE `tymes`$$
DROP PROCEDURE IF EXISTS `mail_NewMail`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mail_NewMail`(
IN mail_Caption VARCHAR(30)
, IN mail_Text VARCHAR(2000)
, IN mail_from_userName VARCHAR(20)
, IN mail_To_mailUIDS VARCHAR(1000)
, IN mailImportant VARCHAR(10)
, IN mailLength INT
)


  COMMENT '邮件 添加新邮件'

BEGIN
-- 邮件标题
-- 邮件正文
-- 发件人
-- 收件人列表
-- 一般 优化 最高
-- 类型          
DECLARE v1 INT DEFAULT mailLength ;
-- 添加方法
-- 1 添加 Mail_list(邮件正文) 然后添加 Mail_main(个人邮件信息表)
SET @newuuid = UUID() ;
-- 添加邮件信息
INSERT INTO `ns_mes_maillist` (`KEY_Mail`, `caption`, `text`, `From_User_Name`, `ToMailUIDS`)
VALUES
(@newuuid, mail_Caption, mail_Text, mail_from_userName, mail_To_mailUIDS) ;
-- 添加个人信息
-- 循环发送
WHILE v1 > 0 DO
SET @to_name = `func_getSplitString` (mail_To_mailUIDS, ',', v1) ;
INSERT INTO `ns_mes_mail_main` (`KEY_Mail`, `To_User_Name`, `Mail_important`, `Mail_Type`,`Mail_Status`, `CREATE_TIME`)
VALUES
(@newuuid, @to_name, mailImportant, 'In','Open', NOW()) ;
SET v1 = v1 - 1 ;
END WHILE ;
END$$
DELIMITER ;




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论