Subversion Repositories DevTools

Rev

Rev 5946 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5925 dpurdie 1
-- UsedByPackageDetail.sql
2
-- Determine package versions that depend on a specific package name
5939 dpurdie 3
-- Provide the package version id and version text
4
--  :PKG_ID   - Need packages that match this package ID
5
--  :PV_ID    - Base package. Provides v_ext and possibly exact match pv_id
5946 dpurdie 6
--  Match control via :MATCH
7
--    :MATCH 0  - Match any  package name
8
--    :MATCH 1  - Match Package name and Project Suffix
9
--    :MATCH 2  - Match exactly the package. Name, Version and Suffix
5947 dpurdie 10
 with 
11
  aa AS ( select NVL(v_ext,'LINK') as ext from package_versions where pv_id = :PV_ID),
12
  bb AS (select pkg_id from package_versions where pv_id = :PV_ID)
5939 dpurdie 13
select pkg.pkg_name, 
14
       pkg.pkg_id , 
15
       ppv.pv_id, 
16
       ppv.pkg_version,
17
       pv.pkg_version as used_version,
18
       pv.pv_id as used_pv_id,
19
       ppv.DLOCKED, 
20
       ppv.MODIFIER_ID, 
21
       ppv.MODIFIED_STAMP, 
22
       usr.FULL_NAME, 
23
       usr.USER_EMAIL,
24
       CASE pv.pv_id WHEN TO_NUMBER(:PV_ID) THEN 1 ELSE 0 END as MATCH
25
  from PACKAGE_DEPENDENCIES dep,
26
  package_versions pv,
27
  package_versions ppv,
28
  packages pkg,
5947 dpurdie 29
  USERS usr,
30
   aa, bb
5939 dpurdie 31
  Where dep.DPV_ID = pv.pv_id
32
  AND dep.PV_ID = ppv.pv_id
33
  AND ppv.PKG_ID = :PKG_ID
34
  AND pkg.pkg_id = ppv.pkg_id
35
  AND pv.MODIFIER_ID = usr.USER_ID(+)
5946 dpurdie 36
  AND (pv.PV_ID  = :PV_ID OR :MATCH != 2)
5947 dpurdie 37
  AND (NVL(pv.v_ext,'LINK') in ( aa.ext ) OR :MATCH = 2 OR :MATCH = 0)
38
  AND (pv.PKG_ID in ( bb.pkg_id ) OR :MATCH = 2)
5939 dpurdie 39
  ORDER BY UPPER(pkg.pkg_name), UPPER(ppv.pkg_version) desc