【问题标题】:PL-SQL Bulk Collect after execute immediate statement执行立即语句后的 PL-SQL 批量收集
【发布时间】:2015-07-16 12:25:03
【问题描述】:

我正在尝试执行以下语句,但我认为 sintax 不正确。立即执行后是否可以使用批量收集?

EXECUTE IMMEDIATE
        'select unique cvc.object_id ' ||
        'from ems.ibo_sm_cvc_rfs cvc,' || 
        'ems.ibo_alcatel_mse_locale poi,' ||
        'ems.ibo_nbn_csa csa,' ||
        'ems.ibo_sm_ean_service_sites_rfs sites,' ||
        'EMS.ibo_sm_ean_service_site_rfs site ' ||
        'where poi.object_name = :1' 
         USING pis_poi_for_cleanup
         BULK COLLECT INTO pona_identified_cvcs;

我得到的错误是一般性的:

在预期以下情况之一时遇到符号“BULK”:...

【问题讨论】:

  • 尝试将USING 部分移动到 语句的BULK COLLECT 部分之后。
  • 就是这样,谢谢,应该在网络上看起来更好。谢谢
  • 您应该将其添加为@sstan 的答案,因为它是 OP 的问题解决者

标签: oracle plsql


【解决方案1】:

重写原来的答案,将USING子句移到BULK COLLECT语句之后:

BEGIN
   EXECUTE IMMEDIATE 'select unique cvc.object_id ' ||
        'from ems.ibo_sm_cvc_rfs cvc,' || 
        'ems.ibo_alcatel_mse_locale poi,' ||
        'ems.ibo_nbn_csa csa,' ||
        'ems.ibo_sm_ean_service_sites_rfs sites,' ||
        'EMS.ibo_sm_ean_service_site_rfs site ' ||
        'where poi.object_name = :1'
        BULK COLLECT INTO pona_identified_cvcs
        USING pis_poi_for_cleanup;
END;
/

您可以扩展此代码查看此link

希望有帮助!!!

【讨论】:

  • 链接很脆弱。如果在链接的另一端可以找到一些智慧,那么除了链接原始来源之外,您还可以帮助未来的搜索者并详细说明您的答案中的关键点。
  • 我是那种人 :),考虑到这个答案作为解决方案,但也看得更深,因为我的代码更大并且需要。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 1970-01-01
  • 2017-02-14
  • 2014-04-25
相关资源
最近更新 更多