[英]Null value is returned from stored procedure
I have stored procedure which returns username. 我有存储过程返回用户名。 I am calling stored procedure from java(EclipseIDE) .
我正在从java(EclipseIDE)调用存储过程。 The returned value from Stored procedure is Null.
从存储过程返回的值为Null。 How to avoid this
Null
Value. 如何避免此
Null
值。
This is my stored procedure 这是我的存储过程
USE `employee`;
DROP procedure IF EXISTS `add1`;
DELIMITER $$
USE `employee`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `add1`(IN UserId int,
IN UserFirstName varchar(50),
IN UserLastName varchar(50),
IN Education varchar(50),
IN MarksInME int,
IN MarksInBE int,
IN MarksInPUC int,
IN Gender varchar(50),
OUT UserName varchar(50))
BEGIN
declare varName varchar(50);
select UserFirstName into varName from User where UserId=3516;
set UserName=varName;
insert into user(UserId,UserFirstName,UserLastName,Education,MarksInME,MarksInBE,MarksInPUC,Gender)
values(UserId,UserFirstName,UserLastName,Education,MarksInME,MarksInBE, MarksInPUC,Gender);
END$$
DELIMITER ;
I am calling Stored Procedure: 我正在呼叫存储过程:
java.sql.CallableStatement cStmt = conn.prepareCall("{call add1(?,?,?,?,?,?,?,?,?)}");
cStmt.setInt(1,3541);
cStmt.setString(2,"pALLAVI");
cStmt.setString(3,"K");
cStmt.setString(4,"BE");
cStmt.setInt(5,0);
cStmt.setInt(6,60);
cStmt.setInt(7,600);
cStmt.setString(8,"chetana@gmail.com");
cStmt.registerOutParameter(9, java.sql.Types.VARCHAR);
cStmt.execute();
userName = cStmt.getString(9);
When I try to print the UserName its printed as Null? 当我尝试打印UserName时,将其打印为Null?
UserId is hardcoded: UserId是硬编码的:
select UserFirstName into varName from User where UserId=3516;
Please check below query: 请检查以下查询:
call add1(3541,'pALLAVI','K','BE',0,60,600,'chetana@gmail.com',@UserName);
SELECT @UserName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.