Using the power of the APEX Dictionary this can be done quite easily.
WITH prod AS ( SELECT column_alias, application_id, report_label, help_text FROM apex_application_page_ir_col WHERE page_id = :page_id_prod AND application_id = :app_id_prod ), dev AS ( SELECT column_alias, application_id, report_label, help_text FROM apex_application_page_ir_col WHERE page_id = :page_id_dev AND application_id = :app_id_dev ) SELECT NVL(prod.column_alias, dev.column_alias) column_alias, prod.report_label prod_label, dev.report_label dev_label, CASE WHEN prod.column_alias IS NULL THEN 'Only DEV' WHEN dev.column_alias IS NULL THEN 'Only PROD' WHEN prod.report_label != dev.report_label 'Differs' ELSE NULL END status FROM prod FULL OUTER JOIN dev ON (prod.column_alias = dev.column_alias) ORDER BY NVL(prod.column_alias, dev.column_alias) ;I used "prod" and "dev" as identifiers for the different settings.
This time I was mainly looking for the report labels, but you can easily extend the query to include additional fields from the APEX_APPLICATION_PAGE_IR_COL view.
This has been in my stash for a while but I didn't publish it before.
Oliver Lemm just started a series of APEX Metadata related posts and made me think let's share this snippet.
May the APEX Dictionary be with you!
No comments:
Post a Comment