I have to get the records from a table field where Length of record/data/string is greater then 8 characters. I cannot use any string function as the query has to be used on (MySQL, MSSQL, Oracle).
I don’t want to do the below EXAMPLE:
List<String> names = new ArrayList<String>();
String st = select 'name' from table;
rs = executeSQL(st);
if ( rs != null )
{
rs.next();
names.add(rs.getString(1));
}
for(String name : names)
{
if(name.length() > 8)
result.add(name);
}
Any idea other then the one coded above? A query that can get the required result instead of processing on the retrieved data and then getting the required result.
Thank you for any help / clue.
JDBC Drivers may implement a JDBC escapes for the functions listed in appendix D (Scalar Functions) of the JDBC specification. A driver should convert the scalar functions it supports to the appropriate function on the database side. A list of the supported functions can be queried using ‘DatabaseMetaData.getStringFunctions()’
To use this in a query you would then either use
CHAR_LENGTH(string)orLENGTH(string)like :You can replace
CHAR_LENGTHwithLENGTH. The driver (if it supports this function) will then convert it to the appropriate function in the underlying database.From section 13.4.1 Scalar Functions of the JDBC 4.1 specification: