Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Neo4j中将参数传递给APOC查询_Neo4j_Neo4j Apoc - Fatal编程技术网

如何在Neo4j中将参数传递给APOC查询

如何在Neo4j中将参数传递给APOC查询,neo4j,neo4j-apoc,Neo4j,Neo4j Apoc,我正在尝试使用APOC库从SQL DB查询记录(在特定时间段之间)。当我将from&to日期作为参数传递时,我得到了一个错误 代码: 如果我使用语法$ Neo.ClientError.Procedure.ProcedureCallFailed: Failed to invoke procedure `apoc.load.jdbc`: Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid pseudocolumn

我正在尝试使用APOC库从SQL DB查询记录(在特定时间段之间)。当我将from&to日期作为参数传递时,我得到了一个错误

代码:

如果我使用语法
$

Neo.ClientError.Procedure.ProcedureCallFailed: Failed to invoke procedure 
`apoc.load.jdbc`: Caused by: 
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid pseudocolumn "$fromDate".

在您的版本中,参数占位符只是查询字符串的一部分,不会传递它们的值

因此,请使用以下步骤:

String query = "CALL apoc.load.jdbc('mssql', {sql}, [{fromDate}, {endDate}]) YIELD row return row";
String sql = "select * from table as tb where tb.from_Date >= ? AND tb.to_Date <= ?";
String fromDate = "2018-11-12 00:00:00";
String endDate = "2018-11-13 00:00:00";

Map<String, Object> parameters = new HashMap<>();
parameters.put("sql", sql);
parameters.put("fromDate", fromDate);
parameters.put("endDate", endDate);

StatementResult result = tx.run(query, parameters);
String query=“CALL apoc.load.jdbc('mssql',{sql},[{fromDate},{endDate}])产生行返回行”;

String sql=“从表中选择*作为tb,其中tb.from_Date>=?和tb.to_Date感谢您的帮助。使用jdbcParams,我能够传递参数和query@ManojChikkala如果解决了问题,请不要忘记接受答案:
Neo.ClientError.Procedure.ProcedureCallFailed: Failed to invoke procedure 
`apoc.load.jdbc`: Caused by: 
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid pseudocolumn "$fromDate".
String query = "CALL apoc.load.jdbc('mssql', {sql}, [{fromDate}, {endDate}]) YIELD row return row";
String sql = "select * from table as tb where tb.from_Date >= ? AND tb.to_Date <= ?";
String fromDate = "2018-11-12 00:00:00";
String endDate = "2018-11-13 00:00:00";

Map<String, Object> parameters = new HashMap<>();
parameters.put("sql", sql);
parameters.put("fromDate", fromDate);
parameters.put("endDate", endDate);

StatementResult result = tx.run(query, parameters);