You can use a SQLJ stored procedure to modify information in the database. The method referenced by the SQLJ procedure must be either:
A method of type void, or
A method with an int return type (incorporation of the int return type is a Sybase extension of the SQLJ standard).
The method SQLJExamples.correctStates() performs a SQL update statement to correct the spelling of state codes. Input parameters specify the old and new spellings. correctStates() is a void method; no value is returned to the caller.
public static void correctStates(String oldSpelling, String newSpelling) throws SQLException {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("sybase.asejdbc.ASEDriver");
conn = DriverManager.getConnection
("jdbc:default:connection");
}
catch (Exception e) {
System.err.println(e.getMessage() +
“:error in connection”);
}
try {
pstmt = conn.prepareStatement
("UPDATE sales_emps SET state = ?
WHERE state = ?");
pstmt.set.String(1, newSpelling);
pstmt.set.String(2, oldSpelling);
pstmt.executeUpdate();
}
catch (SQLException e) {
System.err.println(“SQLException: "+
e.getErrorCode() + e.getMessage());
}
return;
}
Before you can call a Java method with a SQL name, you must create the SQL name for it using the SQLJ create procedure command. The modifies sql data clause is optional.
create procedure correct_states(old char(20), not_old char(20)) modifies sql data language java parameter style java external name 'SQLJExamples.correctStates (java.lang.String, java.lang.String)'
The correct_states procedure has a SQL procedure signature of char(20), char(20). The Java method signature is java.lang.String, java.lang.String.
You can execute the SQLJ procedure exactly as you would a Transact-SQL procedure. In this example, the procedure executes from isql:
execute correct_states 'GEO', 'GA'