我希望这是一个非常简单的请求……我不是开发人员或 DBA,但我涉足过 Perl、PHP 和 PowerShell。无论如何,我们有一个大约 400 位父母和孩子的桌子。表格的片段在这篇文章的底部。如果需要完整的深度,我可以提供 412 个父/子的完整列表。
SOURCE_ID 和 DESTINATION_ID 代表 SOA 环境中的 Web 服务。对于这个练习,我们只需要选择一个服务,然后在层次结构中显示它下面的“下游”子代。此外,我们也想知道层次结构中的“上游”父母。
我最初只是将表格剪切并粘贴到一个文本文件中,然后使用这个PERL 脚本生成一个层次结构文件,然后将其粘贴到 excel 中。长话短说,我想出了 25 个唯一 ID,我认为它们都是 SOURCE_ID 的孩子。
我想用 SQL 查询来做到这一点,这样我就可以制作一个交互式/自助式网页,而不必担心手动过程。我从这个网站的某个地方找到并操作了这段代码:
select Source_Service_Id parent, Destination_Service_Id child
from dd_service_relationship
connect by prior id = Source_Service_Id
start with Source_Service_Id = 10512
它只返回 12 个结果。现在我不知道该相信哪个结果。
请验证 SQL 代码是否应返回所有子项(如果子项在多个父项下,则不重复),并且它将遍历整个表。
这是 dd_service_relationship 表的一小部分:
ID UPDATE_DATE SOURCE_ID DESTINATION_ID
10502 9/24/2012 2:09:45 PM 10501 10500
10504 9/24/2012 2:09:45 PM 10501 10503
10506 9/24/2012 2:09:45 PM 10501 10505
10509 9/24/2012 2:09:45 PM 10508 10507
10511 9/24/2012 2:09:45 PM 10508 10510
10513 9/24/2012 2:09:45 PM 10508 10512
10515 9/24/2012 2:09:45 PM 10508 10514
10517 9/24/2012 2:09:45 PM 10508 10516
10519 9/24/2012 2:09:45 PM 10508 10518
10521 9/24/2012 2:09:45 PM 10508 10520
10523 9/24/2012 2:09:45 PM 10508 10522
10526 9/24/2012 2:09:45 PM 10525 10524
10527 9/24/2012 2:09:45 PM 10525 10505
10529 9/24/2012 2:09:45 PM 10525 10528
10531 9/24/2012 2:09:45 PM 10525 10530
10533 9/24/2012 2:09:45 PM 10532 10505
10534 9/24/2012 2:09:45 PM 10532 10507
10535 9/24/2012 2:09:45 PM 10532 10510
10536 9/24/2012 2:09:45 PM 10532 10512
10538 9/24/2012 2:09:45 PM 10532 10537
10541 9/24/2012 2:09:45 PM 10540 10539
10543 9/24/2012 2:09:45 PM 10542 10514
10544 9/24/2012 2:09:45 PM 10542 10539
10545 9/24/2012 2:09:45 PM 10542 10505
10547 9/24/2012 2:09:45 PM 10546 10518
10549 9/24/2012 2:09:45 PM 10546 10548
谢谢...