我写了一个有缺陷的密码脚本,但我找不到实际的问题。
以下是脚本的关键部分:
:begin
:param measured => 'heat';
:param vals => [
{d: datetime({year: 2022, month: 1, day: 1, hour: 4}), v: 47980},
{d: datetime({year: 2022, month: 2, day: 1, hour: 4}), v: 50840},
{d: datetime({year: 2022, month: 3, day: 1, hour: 4}), v: 53190}];
MATCH (i:Installation:HeatPump {name: "Demoanlage"})--(m:MeasurementSite {measuredObj: $measured})--(me:Meter)
WHERE ID(i) = $hpId WITH me UNWIND $vals as val
MERGE (me)-[:MEASURED_MANUALLY {createdAt: datetime.transaction()}]->
(v:Val {d: val.d, v: val.v}) RETURN v;
:commit
还有一个:begin :commit
块,这可能也是一个问题。
运行此脚本时,得到以下输出:
// using a cypher shell
sdptest@neo4j> :source /home/myname/path/to/cypher-scripts/data_imports/add_demo_hp_vals.cypher;
org/neo4j/internal/helpers/collection/Pair // this is in red, kind of error message
sdptest@neo4j# // note the hash instead of the 'greater than' sign
为了使问题更清楚:我没有得到org/neo4j/internal/helpers/collection/Pair
'error',我不明白为什么哈希突然出现(看起来像一个普通linux shell中的root用户)?
谷歌搜索也无济于事。
(版本:Neo4j 4.4.9,* 密码外壳 * 相同)。
编辑
是否不允许在脚本化事务(:begin :commit
)中添加参数?因为查询对我来说似乎没有问题。
2条答案
按热度按时间ha5z0ras1#
这可能是瞎猜的,但我认为您在下面的代码片段中遗漏了一个参数
$hpId
:请在之后尝试,并为其提供值。
t9eec4r02#
这是一种通过cypher-shell执行脚本的替代方法。将其保存到一个文件中,然后通过cypher-shell命令运行该文件的内容。
从bash终端; 1)创建文件(vi文件)2)复制/粘贴/保存你的代码3)然后通过bash命令运行下面的命令。它将传递文件的内容并将其交给cypher-shell执行。