2014-11-20 3 views
2

사용자 이름을 반환하는 저장 프로 시저가 있습니다. java (EclipseIDE)에서 저장 프로 시저를 호출합니다. 저장 프로 시저의 반환 값은 Null입니다. 이것을 피하는 방법 Null 값.
이 내 저장 프로 시저입니다저장 프로 시저에서 Null 값이 반환됩니다.

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 ; 

내가 저장 프로 시저 호출 오전 :

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,"[email protected]"); 
    cStmt.registerOutParameter(9, java.sql.Types.VARCHAR); 
    cStmt.execute(); 
    userName = cStmt.getString(9); 

나는 그것의 널 (null)로 인쇄 사용자 이름을 인쇄하려고?

답변

0

사용자 아이디는 하드 코드 :

call add1(3541,'pALLAVI','K','BE',0,60,600,'[email protected]',@UserName); 
SELECT @UserName; 
:

select UserFirstName into varName from User where UserId=3516; 

쿼리 아래에서 확인하시기 바랍니다

관련 문제