0
Bitte helfen Sie mir, ein Problem zu beheben. Ich muss den NAMEN eines Benutzers drucken, aber bekomme nur den ersten Buchstaben davon.JDBC CallableStatement Ausgabe
public static void main(String[] args) {
Connection conn = null;
java.sql.CallableStatement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
String sql = "{call retrieveFirstName(?,?)}";
stmt = conn.prepareCall(sql);
//Bind IN parameter first, then bind OUT parameter
int uID = 1;
((java.sql.CallableStatement)stmt).setInt(1,uID);
((java.sql.CallableStatement)stmt).registerOutParameter(2, java.sql.Types.VARCHAR);
((java.sql.CallableStatement)stmt).execute();
//Retrieve employee name with getXXX method
String userName = ((java.sql.CallableStatement)stmt).getNString(2);
System.out.println("User Name with ID:" + uID + " is " + userName);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
//close resources
}
}
ist hier ein Verfahren
create procedure retrieveFirstName
@userID int,
@firstName varchar(250) output
as
begin
select @firstName=first_name
from user_account
where [email protected]
end
Ihr Java-Code scheint in Ordnung zu sein. Ich denke, das Problem ist mit Ihrer gespeicherten Prozedur. Können Sie die Ausgabe der Prozedur mit dem Sql-Client bestätigen? –