gpt4 book ai didi

json - 我们可以在没有循环的情况下获得 oracle 中列表属性的总和吗?

转载 作者:行者123 更新时间:2023-12-04 09:37:33 25 4
gpt4 key购买 nike

我们可以得到以下列表中所有小时数的总和吗?我正在使用带有 JSON_QUERY 函数的 sum 函数,但出现错误。

 SET SERVEROUT ON

DECLARE
data varchar2(200);
JSONSTRING VARCHAR2(4000):= ' {"Implement_Details": [
{
"Hours": "100",
"Implement1": "Laser Leveler"
},
{
"Hours": "400",
"Implement1": "Trolley"
},
{
"Hours": "100",
"Implement1": "Cultivator"
}
]}';

BEGIN

SELECT SUM(JSON_QUERY(JSONSTRING, '$.Implement_Details[*].Hours' WITH ARRAY WRAPPER)) INTO DATA
FROM dual;


DBMS_OUTPUT.PUT_LINE(data);

end;
预期输出: 100 + 400 + 100 = 600

Error report - ORA-01722: invalid number ORA-06512: at line 2001722. 00000 - "invalid number"*Cause: The specified number was invalid.*Action: Specify a valid number.

最佳答案

您不能使用 SUM()在整个 ARRAY 上。
我所做的是我打开了 Hours放入一张 table 并使用了 SUM()在专栏上,您通常会如何使用 SELECT条款。

SET SERVEROUT ON

DECLARE
data varchar2(200);
JSONSTRING VARCHAR2(4000):= ' {"Implement_Details": [
{
"Hours": 100,
"Implement1": "Laser Leveler"
},
{
"Hours": 400,
"Implement1": "Trolley"
},
{
"Hours": 100,
"Implement1": "Cultivator"
}
]}';

BEGIN

SELECT SUM(value) INTO DATA
FROM JSON_TABLE((JSON_QUERY(JSONSTRING, '$.Implement_Details[*].Hours' WITH ARRAY WRAPPER)), '$[*]' COLUMNS (value PATH '$'));

DBMS_OUTPUT.PUT_LINE(data);

end;

关于json - 我们可以在没有循环的情况下获得 oracle 中列表属性的总和吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62493980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com