为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.2.79
【操作系统】:Windows
【CPU】因特尔i5
【问题描述】*:执行insert操作时报错:
语法分析出错
语法分析出错
; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 37 行, 第 35 列[]附近出现错误:
语法分析出错
org.springframework.jdbc.BadSqlGrammarException:
语法分析出错。
附实体类:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("schedule_job")
public class ScheduleJobEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private Long creator;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updater;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 版本号
*/
@Version
@TableField(fill = FieldFill.INSERT)
private Integer version;
/**
* 删除标记
*/
@TableLogic
@TableField(fill = FieldFill.INSERT)
private Integer deleted;
private Long projectId;
private Long typeId;
private Integer jobType;
/**
* 任务名称
*/
private String jobName;
/**
* 任务组名
*/
private String jobGroup;
/**
* bean名称
*/
private String beanName;
/**
* 执行方法
*/
private String method;
/**
* 方法参数
*/
private String params;
/**
* cron表达式
*/
private String cronExpression;
/**
* 状态
*/
private Integer status;
/**
* 是否并发 0:禁止 1:允许
*/
private Integer concurrent;
/**
* 备注
*/
private String remark;
@TableField(exist = false)
private boolean saveLog;
private Boolean once;
//1-自动调度 2-手动触发
@TableField(exist = false)
private Integer runType;
@TableField(exist = false)
private String executeNo;
}
数据库已通过
sp_set_para_string_value(2,'EXCLUDE_RESERVED_WORDS','once');
sp_set_para_string_value(2,'EXCLUDE_RESERVED_WORDS','version');
排除关键字,初始化实例时为大小写不敏感。
现在唯一可以插入的方式就是把主键id名字修改为除id外其他的其他名称,如:sch_id,就可以插入成功。
但是这种方式不是最终解决办法,有没有大佬遇到过这种问题?
修改、查询、删除都不报错,只有新增不好用。
你查一下,你的关键字是几个,这个关键字要重启数据库服务才可以生效
select * from v$dm_ini where "PARA_NAME"='EXCLUDE_RESERVED_WORDS';