上述sql错误"C"."PERSONID": 标识符无效
时间: 2023-08-23 20:04:23 浏览: 39
这个错误通常是由于表中不存在名为 "PERSONID" 的列引起的。请确认 "wjj_yy_yldsj_grjbxxb" 表中是否有名为 "PERSONID" 的列,并且确保该列名没有拼写错误或大小写错误。如果表中确实没有该列,那么请检查您的 SQL 查询语句中是否有其他错误,例如表名错误、多余的逗号或括号等。如果您已经确认表中存在该列,并且仍然遇到这个错误,请检查您的 SQL 查询语句中是否正确指定了表名和列名,并且没有使用任何别名或视图。
相关问题
Caused by: org.apache.ibatis.binding.BindingException: Parameter 'personId' not found. Available parameters are [ew, param1, et, param2]
这个错误是由于MyBatis在执行SQL语句时找不到名为'personId'的参数所致。根据错误信息,可用的参数为[ew, param1, et, param2],但缺少'personId'参数。
解决这个问题的方法是确保在执行SQL语句时提供了正确的参数。请检查你的代码,确认是否正确传递了'personId'参数。
sql中的错误(SELECT c.name, b.diagnose, substrb ( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 0, 4 ) - substrb ( to_char( trunc( c.birthday, 'yy' ), 'yyyymmdd' ), 0, 4 ) "年龄", c.HOME_ADDRESS FROM "wjj_yy_yldsj_mzghxx" a, "wjj_yy_yldsj_mzgzrz" b, "wjj_yy_yldsj_grjbxxb" c WHERE a.ORG_REG_ID = b.register_id AND a.reg_class = 2 AND a.org_code = b.org_code AND a.personid = c.personid)
这段 SQL 查询语句存在语法错误,具体如下:
1. 在 substrb 函数中,第一个参数应该是要截取的字符串,而不是日期类型的值。因此,在 substrb 函数中应该使用 to_char 函数将日期类型的值转换为字符串类型的值,例如:
```
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 )
```
2. 在 substrb 函数中,第二个参数应该表示截取的起始位置,而不是要截取的长度。因此,在此处应该使用 1,而不是 0,例如:
```
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 )
```
3. 在 WHERE 子句中,多个条件之间应该使用逻辑运算符连接,例如使用 AND 连接,而不是使用逗号连接。
修改后的 SQL 查询语句如下:
```
SELECT
c.name,
b.diagnose,
substrb( to_char( trunc( SYSDATE, 'yy' ), 'yyyymmdd' ), 1, 4 ) - substrb( to_char( trunc( c.birthday, 'yy' ), 'yyyymmdd' ), 1, 4 ) "年龄",
c.HOME_ADDRESS
FROM
"wjj_yy_yldsj_mzghxx" a,
"wjj_yy_yldsj_mzgzrz" b,
"wjj_yy_yldsj_grjbxxb" c
WHERE
a.ORG_REG_ID = b.register_id
AND a.reg_class = 2
AND a.org_code = b.org_code
AND a.personid = c.personid;
```