描述:

Sqlsever数据库中自带函数SYSDATETIME()在金仓数据库中对应的是SYSTIMESTAMP。

错误信息:

 java.sql.SQLException: [KingbaseES Server]ERROR: 函数 SYSDATETIME() 不存在 Line 1 at SQL statement

HINT: 不能根据所提供的名称和参数类型找到与之匹配的函数。你可以增加显式的类型转换。

at com.kingbase.core.QueryExecutor.processResultSetExtended(Unknown Source)

at com.kingbase.core.QueryExecutor.processResultSet(Unknown Source)

at com.kingbase.core.QueryExecutor.executePV3(Unknown Source)

at com.kingbase.core.QueryExecutor.execute(Unknown Source)

at com.kingbase.core.QueryExecutor.execute(Unknown Source)

at com.kingbase.jdbc3.AbstractJdbc3Statement.executePV3X(Unknown Source)

at com.kingbase.jdbc3.AbstractJdbc3Statement.execute(Unknown Source)

at com.kingbase.jdbc2.AbstractJdbc2Statement.execute(Unknown Source)

 

解决办法:

编写语句时使用对应的函数替换即可(红色部分是需要修改的)。

Sqlserver写法:

"INSERT INTO TBL_WORKFLOW_AGENT_LOG (id,workflowId,processDefinitionId,processInstanceId,taskDefinitionId,taskId,beagenterId,agenterId,agentDateTime,creater,createDateTime)values(NEWID(),'"+wid+"','"+rs1.getString("PROC_DEF_ID_")+"','"+rs1.getString("PROC_INST_ID_")+"','"+rs1.getString("TASK_DEF_KEY_")+"','"+rs1.getString("EXECUTION_ID_")+"','"+beAgenterId+"','"+agenterId+"',SYSDATETIME(),'',SYSDATETIME())";

改为:

"INSERT INTO TBL_WORKFLOW_AGENT_LOG(id,workflowId,processDefinitionId,processInstanceId,taskDefinitionId,taskId,beagenterId,agenterId,agentDateTime,creater,createDateTime)values(NEWID(),'"+wid+"','"+rs1.getString("PROC_DEF_ID_")+"','"+rs1.getString("PROC_INST_ID_")+"','"+rs1.getString("TASK_DEF_KEY_")+"','"+rs1.getString("EXECUTION_ID_")+"','"+beAgenterId+"','"+agenterId+"',SYSTIMESTAMP,'',SYSTIMESTAMP)"

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐