函数Oracle PL SQL批量收集错误PLS-00382:表达式类型错误

时间:2020-09-22 11:39:52

标签: sql oracle plsql oracle-sqldeveloper plsqldeveloper

我有这个功能:

//actual code output form mongo shell
//prepare data
db.mycoll2.insertMany([
{_id:1,"docarr":["doc1","doc2","doc3"]},
{_id:2,"docarr":["doc4","doc5","doc6"]}
]
);
> db.mycoll2.find();
{ "_id" : 1, "docarr" : [ "doc1", "doc2", "doc3" ] }
{ "_id" : 2, "docarr" : [ "doc4", "doc5", "doc6" ] }
//use aggregate to represent array documents linewise
> db.mycoll2.aggregate([
... {$unwind: "$docarr"}
... ]);
//ouput document from array, you can access each document via _id and docarr field label name
{ "_id" : 1, "docarr" : "doc1" }
{ "_id" : 1, "docarr" : "doc2" }
{ "_id" : 1, "docarr" : "doc3" }
{ "_id" : 2, "docarr" : "doc4" }
{ "_id" : 2, "docarr" : "doc5" }
{ "_id" : 2, "docarr" : "doc6" }
>

我有这张桌子,我想知道乘积的和是多少。 我想了解当我想显示多个列时函数的工作方式。我在互联网上发现了与批量收集有关的问题,并尝试这样做,但是遇到此错误:

PLS-00382:表达式类型错误 我在做什么错了?

1 个答案:

答案 0 :(得分:2)

问题在于,在函数GET_SUM中,您将返回类型为results_type的l_result。在您的匿名块中,您正在调用GET_SUM并尝试将其分配给VARCHAR2(50)变量。您要为其分配值的变量需要与函数的返回类型匹配。

相关问题