私はこのサーバーを私のSQLデータベースに接続しているスマートフォックスサーバーを使用しています。
このクエリはMy sqlコマンドラインで適切に実行されていますが、サーバー側でこのクエリを作成するとエラーが発生します。エラーが % emp_id% にあることがわかります。ここで emp_id は定数です。私はそのような方法で試していますが、それでもエラーが発生します。
String sql="
SELECT emp_first_name
, emp_last_name
, msg_title
, msg_body
FROM message_master
JOIN emp_master
ON emp_master.emp_id = message_master.empmsgsender_id
AND message_master.emp_id IN(SELECT emp_id
FROM message_master
WHERE emp_id LIKE %'"+emp_id+"'%)";
@Override
public void handleClientRequest(User user, ISFSObject isfso)
{
try
{
trace("within request for message");
String emp_id=isfso.getUtfString("uid");
trace( "Employee_id:"+emp_id);
// String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id='"+emp_id+ "' LIMIT 10";
String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id IN(SELECT emp_id from message_master where emp_id LIKE %emp_id%)";
trace("After sql query");
sfsdb=getParentExtension().getParentZone().getDBManager();
conn=sfsdb.getConnection();
trace("connection established");
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
trace("After resultset");