Skip to main content

[Loner Tables] Find Tables Without Relationships in Oracle Database

 


Here I am giving an example to find out the tables without having relationships in oracle database.

Tables that are not referencing and are not referenced by other tables. Something we called "Loner Tables".

Query 1: All tables accessible to the current user in Oracle database that don't have foreign keys and are not referenced by other tables with foreign keys.

SELECT t.owner AS schema_name,
       t.table_name,
       '>- No FKs' fks
  FROM sys.all_tables t
  LEFT JOIN (SELECT DISTINCT owner AS schema_name,
                    table_name
               FROM sys.all_constraints
              WHERE constraint_type = 'R'
            ) fks
    ON t.owner      = fks.schema_name
   AND t.table_name = fks.table_name
  LEFT JOIN (SELECT DISTINCT cons.r_owner AS schema_name,
                    ref_cons.table_name   AS table_name
               FROM sys.all_constraints cons
              INNER JOIN sys.all_constraints ref_cons
                 ON cons.r_owner              = ref_cons.owner
                 AND cons.r_constraint_name   = ref_cons.constraint_name
               WHERE cons.constraint_type     = 'R'
            ) referenced_by_others 
    ON t.owner  = referenced_by_others.schema_name
   AND t.table_name = referenced_by_others.table_name
 WHERE fks.table_name  IS NULL
   AND referenced_by_others.table_name IS NULL
  -- excluding some Oracle maintained schemas
   AND t.owner NOT IN ('ANONYMOUS','CTXSYS','DBSNMP','EXFSYS', 
                       'LBACSYS', 'MDSYS', 'MGMT_VIEW','OLAPSYS',
                       'OWBSYS','ORDPLUGINS', 'ORDSYS','OUTLN', 
                       'SI_INFORMTN_SCHEMA','SYS','SYSMAN','SYSTEM', 
                       'TSMSYS','WK_TEST', 'WKPROXY','WMSYS','XDB',
                       'APEX_040000', 'APEX_PUBLIC_USER','DIP', 
                       'FLOWS_30000','FLOWS_FILES','MDDATA', 'ORACLE_OCM', 
                       'XS$NULL', 'WKSYS', 'SPATIAL_CSW_ADMIN_USR', 
                       'SPATIAL_WFS_ADMIN_USR', 'PUBLIC')
 ORDER BY t.owner,
          t.table_name;

Query 2: All tables in Oracle database that don't have foreign keys and are not referenced by other tables with foreign keys. (If you have privilege on dba_tables and dba_constraints)

SELECT t.owner AS schema_name,
       t.table_name,
       '>- No FKs' fks
  FROM sys.dba_tables t
  LEFT JOIN (SELECT DISTINCT owner AS schema_name,
                    table_name
               FROM sys.dba_constraints
              WHERE constraint_type = 'R'
            ) fks
    ON t.owner      = fks.schema_name
   AND t.table_name = fks.table_name
  LEFT JOIN (SELECT DISTINCT cons.r_owner AS schema_name,
                    ref_cons.table_name   AS table_name
               FROM sys.dba_constraints cons
              INNER JOIN sys.dba_constraints ref_cons
                 ON cons.r_owner              = ref_cons.owner
                 AND cons.r_constraint_name   = ref_cons.constraint_name
               WHERE cons.constraint_type     = 'R'
            ) referenced_by_others 
    ON t.owner  = referenced_by_others.schema_name
   AND t.table_name = referenced_by_others.table_name
 WHERE fks.table_name  IS NULL
   AND referenced_by_others.table_name IS NULL
  -- excluding some Oracle maintained schemas
   AND t.owner NOT IN ('ANONYMOUS','CTXSYS','DBSNMP','EXFSYS', 
                       'LBACSYS', 'MDSYS', 'MGMT_VIEW','OLAPSYS',
                       'OWBSYS','ORDPLUGINS', 'ORDSYS','OUTLN', 
                       'SI_INFORMTN_SCHEMA','SYS','SYSMAN','SYSTEM', 
                       'TSMSYS','WK_TEST', 'WKPROXY','WMSYS','XDB',
                       'APEX_040000', 'APEX_PUBLIC_USER','DIP', 
                       'FLOWS_30000','FLOWS_FILES','MDDATA', 'ORACLE_OCM', 
                       'XS$NULL', 'WKSYS', 'SPATIAL_CSW_ADMIN_USR', 
                       'SPATIAL_WFS_ADMIN_USR', 'PUBLIC')
 ORDER BY t.owner,
          t.table_name;

Output:
Reference:

Happy APEXing!!!...

Comments

Popular posts from this blog

Friendly URL: Redirect to Different Page after Login in Oracle APEX 20.1

Oracle has updated apex.oracle.com to APEX 20.1 which includes among other features the new Friendly URL option. Here i am giving an example to redirect to different page after login in Oracle APEX 20.1 [Friendly URL Enabled] Step 1: Define home page for each user in emp master table as below Step 2: To enable Friendly URL Syntax, follow below steps, 1) On the Workspace home page, click the App Builder icon. 2) Select an application (The Application home page appears). 3) From Application home page, you can access the Definition page in TWO ways: Click the Edit Application Properties button. From Shared Components:              1) Click Shared Components .              2) Under Application Logic, click Application Definition Attributes . The Definition page appears. 4) Under Properties, configure the Friendly URL s attribute: Click Apply Changes to save your ch...

Printing Page Numbers in RTF Template [Oracle BI Publisher]

Here I am giving an example to print the page numbers dynamically in the RTF (Rich Text Format) template. Step 1:  Go to page footer and copy and paste the below script. Page |  <?fo:page-number?>  of  <?fo:page-number-citation:xdofo:lastpage-joinseq?> <fo:page-number> :   This is the object, which is used to represent the current page-number. <?fo:page-number-citation:xdofo:lastpage-joinseq?> :  This is the syntax, which is used to represent the total number of pages. Step 2:  Load the XML and preview the result. Output: That's it. References: fo:page-number Printing Page Number Code in Oracle XMLP RTF Template

Oracle Application Express Views (APEX)

Application Express Views Search SELECT * FROM apex_dictionary WHERE column_id = 0; View Comment Parent View APEX_APPLICATIONS Applications defined in the current workspace or database user. APEX_WORKSPACES APEX_APPLICATION_ALL_AUTH All authorization schemes for all components by Application APEX_APPLICATIONS ...