Plsql PLS-00653空行错误(PL/SQL范围内不允许使用聚合/表函数)

Plsql PLS-00653空行错误(PL/SQL范围内不允许使用聚合/表函数),plsql,aggregate-functions,plsqldeveloper,pipelined-function,Plsql,Aggregate Functions,Plsqldeveloper,Pipelined Function,我正在尝试运行我创建的PL/SQL脚本,但出现错误: PLS-00653:PL/SQL范围中不允许使用聚合/表函数 这里的问题不是错误本身,而是从哪里抛出的。 下面是引发此错误的PL/SQL块: 声明 l_类型代码_arr_类型为VARCHAR2100的VARRAY3; l_代码\u arr l_代码\u arr\u类型; l_objet objet_interface_pkg.objet_interface_typ; l_resultat CLOB; l_valeur valeur_pkg.v

我正在尝试运行我创建的PL/SQL脚本,但出现错误: PLS-00653:PL/SQL范围中不允许使用聚合/表函数

这里的问题不是错误本身,而是从哪里抛出的。 下面是引发此错误的PL/SQL块:

声明 l_类型代码_arr_类型为VARCHAR2100的VARRAY3; l_代码\u arr l_代码\u arr\u类型; l_objet objet_interface_pkg.objet_interface_typ; l_resultat CLOB; l_valeur valeur_pkg.valeur_typ; l_liens lien_objet_interface_pkg.lien_objet_interface_选项卡; l_行数; 开始 l_code_arr:=l_code_arr_typ'champ.fonctions.dossier.particulier', 'champ.fonctions.region.admin', “champ.Fontions.ministere.Organime”; l_resultat:='{'; 对于1..l\u代码\u arr.count循环中的l\u idx l_objet:=objet_interface_pkg.obtenir_fncp_code=>l_code_arrl_idx, p_acron_sys=>:首字母缩写; l|u resultat:=l|u resultat| |“| | l| u objet.code| | |]:[”; l_liens:=lien_objet_interface_pkg.obtenir_par_objet_fncp_id_objet=>l_objet.id_obj; 对于“从表中选择*”循环中的l_lien l\u valeur:=valeur\u pkg.obtenir\u fncp\u id=>l\u lien.id\u valeur; l_result:=l_result | |‘| | | l|valeur.valeur | |‘; 适用于选择地区的l_儿童* 从TABLEvaleur\u pkg.obtenir\u儿童\u fncp\u id\u家长=>l\u lien.id\u valeur, p_代码=>l_valeur.valeur循环 l|u resultat:=l|u resultat | |',“| | l|u enfant.valeur | |”; 端环; 端环; l_resultat:=l_resultat | |']; 端环; 我找到了解决办法

问题在于函数lien_objet_interface_pkg.obtenir_par_objet是管道化的,并且管道化返回不能存储在变量中

所以这两行

l_liens:=lien_objet_interface_pkg.obtenir_par_objet_fncp_id_objet=>l_objet.id_obj; 对于“从表中选择*”循环中的l_lien …需要合并为一行,如下所示:

对于表中的l_lien,请从表中选择*对象对象对象对象对象接口\u pkg.obtenir\u par\u objet\u fncp\u id\u objet=>l_objet.id\u obj循环 然而,我仍然不知道为什么PL\SQL开发者说我的错误来自第34行,这可能仍然是一个谜。如果有人知道这个谜的答案,请随时告诉我