我有一个这样的查询(我将它放入一个字符串中以准备查询本身):
select r.id,
r.id_user,
r.date_pubblication,
r.name,
r.description,
r.type,
u.name as Uname
from resources r,
users u
where r.id_user=id_logged
现在,select中的所有这些字段都是数据库表的字段。只有id_logged不是表的字段,而是通过这种方式定义的java变量:
User user = userService.getUserCurrent();
long id_logged = user.getId();
运行查询后返回的错误是
ORA-00904: "ID_LOGGED": invalid identifier
还有一点要说的是,当我通过给出值user.getId()定义id_logged时,会出现警告
- The value of the local variable id_logged is not used
你能解释一下我的错误吗?我可以正确运行此查询吗?
答案 0 :(得分:0)
所以,如果我理解正确,你会产生这样的情感:
"select r.id, r.id_user, r.date_pubblication,r.name, r.description, r.type, u.name as Uname from resources r, users u where r.id_user=id_logged"
作为字符串?
如果是这样 - 检查最后一个参数:r.id_user = id_logged。 这是一个字符串。并且您将 id_logged 声明为javascript变量。
如果是这样 - 您必须使用变量值加入查询字符串。 例如:
javascript:
"query string" + id_logged
php:
"query string" . id_logged
如果我理解你的问题,这应该对你有帮助。
答案 1 :(得分:0)
如果您的查询是Java字符串,则需要执行以下操作:
String id_logged = //Whatever you do to get the value of id_logged.
String query = "select r.id, "+
"r.id_user, "+
"r.date_pubblication,"+
"r.name,"+
"r.description, "+
"r.type, "+
"u.name as Uname "+
"from resources r, "+
"users u "+
"where r.id_user="+id_logged ;
//Now you can execute the query.
请注意,这很容易引入SQL。你应该用准备好的陈述做这种事情。