When attempting to execute a preparedStatement with parameters in this code
public void Insert(String TreeType, String LastWatered, String PlantDate) {
try {
String G = "INSERT INTO Trees (TreeType, LastWatered, PlantDate) VALUES
(?, ?, ?)";
PreparedStatement preparedStatement = conn.prepareStatement(G);
preparedStatement.setString(1, TreeType);
preparedStatement.setString(2, LastWatered);
preparedStatement.setString(3, PlantDate);
preparedStatement.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(TreeArr.class.getName()).log(Level.SEVERE, null, ex);
}
}
I get this error
Sep 09, 2018 2:15:51 AM pat.ConnectDb Insert
SEVERE: null
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.4 data exception:
string data, right truncation; table: TREES column: TREETYPE
at
net.ucanaccess.jdbc.UcanaccessPreparedStatement.executeUpdate(UcanaccessPreparedStatement.java:269)
at pat.ConnectDb.Insert(ConnectDb.java:41)
at pat.AddTreeGUI.GoButton1ActionPerformed(AddTreeGUI.java:218)
at pat.AddTreeGUI.access$100(AddTreeGUI.java:13)
at pat.AddTreeGUI$2.actionPerformed(AddTreeGUI.java:67)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
...
Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation; table: TREES column: TREETYPE
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.Table.enforceTypeLimits(Unknown Source)
at org.hsqldb.Table.insertSingleRow(Unknown Source)
at org.hsqldb.StatementDML.insertSingleRow(Unknown Source)
at org.hsqldb.StatementInsert.getResult(Unknown Source)
at org.hsqldb.StatementDMQL.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 46 more
Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.types.CharacterType.convertToTypeLimits(Unknown Source)
... 53 more
however, it works when I input a real string eg
preparedStatement.setString(1, "Hello World");
How can this be done be acheved?
data exception: string data, right truncation; table: TREES column: TREETYPE
The error message is telling you that the string value in the Java variable TreeType is longer than the maximum allowable length of a string in the column TreeType as defined in the Trees table. You'll either have to make the column wider or make your string shorter.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With