-- Synchronize Terminology

/*
-- take account of the output for these two selects

SELECT DISTINCT columnname, NAME, description, HELP, entitytype
           FROM AD_COLUMN c
          WHERE NOT EXISTS (SELECT 1
                              FROM AD_ELEMENT e
                             WHERE UPPER (c.columnname) = UPPER (e.columnname));

SELECT DISTINCT columnname, NAME, description, HELP, entitytype
           FROM AD_PROCESS_PARA p
          WHERE NOT EXISTS (SELECT 1
                              FROM AD_ELEMENT e
                             WHERE UPPER (p.columnname) = UPPER (e.columnname));

*/
-- execute							 

INSERT INTO AD_ELEMENT_TRL
            (ad_element_id, AD_LANGUAGE, ad_client_id, ad_org_id, isactive,
             created, createdby, updated, updatedby, NAME, printname,
             description, HELP, istranslated)
   SELECT m.ad_element_id, l.AD_LANGUAGE, m.ad_client_id, m.ad_org_id,
          m.isactive, m.created, m.createdby, m.updated, m.updatedby, m.NAME,
          m.printname, m.description, m.HELP, 'N'
     FROM AD_ELEMENT m, AD_LANGUAGE l
    WHERE l.isactive = 'Y'
      AND l.issystemlanguage = 'Y'
      AND ad_element_id || AD_LANGUAGE NOT IN (
                                           SELECT ad_element_id || AD_LANGUAGE
                                             FROM AD_ELEMENT_TRL);

UPDATE AD_COLUMN
   SET ad_element_id = (SELECT ad_element_id
                          FROM AD_ELEMENT e
                         WHERE UPPER (AD_COLUMN.columnname) = UPPER (e.columnname))
 WHERE ad_element_id IS NULL;

DELETE FROM AD_ELEMENT_TRL
      WHERE ad_element_id IN (
               SELECT ad_element_id
                 FROM AD_ELEMENT e
                WHERE NOT EXISTS (
                              SELECT 1
                                FROM AD_COLUMN c
                               WHERE UPPER (e.columnname) =
                                                          UPPER (c.columnname))
                  AND NOT EXISTS (
                              SELECT 1
                                FROM AD_PROCESS_PARA p
                               WHERE UPPER (e.columnname) =
                                                          UPPER (p.columnname)));

DELETE FROM AD_ELEMENT
      WHERE NOT EXISTS (SELECT 1
                          FROM AD_COLUMN c
                         WHERE UPPER (AD_ELEMENT.columnname) = UPPER (c.columnname))
        AND NOT EXISTS (SELECT 1
                          FROM AD_PROCESS_PARA p
                         WHERE UPPER (AD_ELEMENT.columnname) = UPPER (p.columnname));

UPDATE AD_COLUMN
   SET columnname =
          (SELECT columnname
             FROM AD_ELEMENT e
            WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       NAME =
          (SELECT NAME
             FROM AD_ELEMENT e
            WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       description =
          (SELECT description
             FROM AD_ELEMENT e
            WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       HELP =
          (SELECT HELP
             FROM AD_ELEMENT e
            WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       updated = current_timestamp
 WHERE EXISTS (
          SELECT 1
            FROM AD_ELEMENT e
           WHERE AD_COLUMN.ad_element_id = e.ad_element_id
             AND (   AD_COLUMN.columnname <> e.columnname
                  OR AD_COLUMN.NAME <> e.NAME
                  OR COALESCE (AD_COLUMN.description, ' ') <> COALESCE (e.description, ' ')
                  OR COALESCE (AD_COLUMN.HELP, ' ') <> COALESCE (e.HELP, ' ')
                 ));

UPDATE AD_FIELD
   SET NAME =
          (SELECT e.NAME
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       description =
          (SELECT e.description
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       HELP =
          (SELECT e.HELP
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       updated = current_timestamp
 WHERE AD_FIELD.iscentrallymaintained = 'Y'
   AND AD_FIELD.isactive = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e, AD_COLUMN c
           WHERE AD_FIELD.ad_column_id = c.ad_column_id
             AND c.ad_element_id = e.ad_element_id
             AND c.ad_process_id IS NULL
             AND (   AD_FIELD.NAME <> e.NAME
                  OR COALESCE (AD_FIELD.description, ' ') <> COALESCE (e.description, ' ')
                  OR COALESCE (AD_FIELD.HELP, ' ') <> COALESCE (e.HELP, ' ')
                 ));

UPDATE AD_FIELD_TRL
   SET NAME =
          (SELECT e.NAME
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       description =
          (SELECT e.description
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       HELP =
          (SELECT e.HELP
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       istranslated =
          (SELECT e.istranslated
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       updated = current_timestamp
 WHERE EXISTS (
          SELECT 1
            FROM AD_FIELD f, AD_ELEMENT_TRL e, AD_COLUMN c
           WHERE AD_FIELD_TRL.ad_field_id = f.ad_field_id
             AND f.ad_column_id = c.ad_column_id
             AND c.ad_element_id = e.ad_element_id
             AND c.ad_process_id IS NULL
             AND AD_FIELD_TRL.AD_LANGUAGE = e.AD_LANGUAGE
             AND f.iscentrallymaintained = 'Y'
             AND f.isactive = 'Y'
             AND (   AD_FIELD_TRL.NAME <> e.NAME
                  OR COALESCE (AD_FIELD_TRL.description, ' ') <> COALESCE (e.description, ' ')
                  OR COALESCE (AD_FIELD_TRL.HELP, ' ') <> COALESCE (e.HELP, ' ')
                 ));

UPDATE AD_FIELD
   SET NAME =
          (SELECT e.po_name
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       description =
          (SELECT e.po_description
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       HELP =
          (SELECT e.po_help
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       updated = current_timestamp
 WHERE AD_FIELD.iscentrallymaintained = 'Y'
   AND AD_FIELD.isactive = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e, AD_COLUMN c
           WHERE AD_FIELD.ad_column_id = c.ad_column_id
             AND c.ad_element_id = e.ad_element_id
             AND c.ad_process_id IS NULL
             AND (   AD_FIELD.NAME <> e.po_name
                  OR COALESCE (AD_FIELD.description, ' ') <> COALESCE (e.po_description, ' ')
                  OR COALESCE (AD_FIELD.HELP, ' ') <> COALESCE (e.po_help, ' ')
                 )
             AND e.po_name IS NOT NULL)
   AND EXISTS (
          SELECT 1
            FROM AD_TAB t, AD_WINDOW w
           WHERE AD_FIELD.ad_tab_id = t.ad_tab_id
             AND t.ad_window_id = w.ad_window_id
             AND w.issotrx = 'N');

UPDATE AD_FIELD_TRL
   SET NAME =
          (SELECT e.po_name
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       description =
          (SELECT e.po_description
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       HELP =
          (SELECT e.po_help
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       istranslated =
          (SELECT e.istranslated
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
            WHERE e.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id),
       updated = current_timestamp
 WHERE EXISTS (
          SELECT 1
            FROM AD_FIELD f, AD_ELEMENT_TRL e, AD_COLUMN c
           WHERE AD_FIELD_TRL.ad_field_id = f.ad_field_id
             AND f.ad_column_id = c.ad_column_id
             AND c.ad_element_id = e.ad_element_id
             AND c.ad_process_id IS NULL
             AND AD_FIELD_TRL.AD_LANGUAGE = e.AD_LANGUAGE
             AND f.iscentrallymaintained = 'Y'
             AND f.isactive = 'Y'
             AND (   AD_FIELD_TRL.NAME <> e.po_name
                  OR COALESCE (AD_FIELD_TRL.description, ' ') <> COALESCE (e.po_description, ' ')
                  OR COALESCE (AD_FIELD_TRL.HELP, ' ') <> COALESCE (e.po_help, ' ')
                 )
             AND e.po_name IS NOT NULL)
   AND EXISTS (
          SELECT 1
            FROM AD_FIELD f, AD_TAB t, AD_WINDOW w
           WHERE AD_FIELD_TRL.ad_field_id = f.ad_field_id
             AND f.ad_tab_id = t.ad_tab_id
             AND t.ad_window_id = w.ad_window_id
             AND w.issotrx = 'N');

UPDATE AD_FIELD
   SET NAME =
          (SELECT p.NAME
             FROM AD_PROCESS p, AD_COLUMN c
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       description =
          (SELECT p.description
             FROM AD_PROCESS p, AD_COLUMN c
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       HELP =
          (SELECT p.HELP
             FROM AD_PROCESS p, AD_COLUMN c
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = AD_FIELD.ad_column_id),
       updated = current_timestamp
 WHERE AD_FIELD.iscentrallymaintained = 'Y'
   AND AD_FIELD.isactive = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_PROCESS p, AD_COLUMN c
           WHERE c.ad_process_id = p.ad_process_id
             AND AD_FIELD.ad_column_id = c.ad_column_id
             AND (   AD_FIELD.NAME <> p.NAME
                  OR COALESCE (AD_FIELD.description, ' ') <> COALESCE (p.description, ' ')
                  OR COALESCE (AD_FIELD.HELP, ' ') <> COALESCE (p.HELP, ' ')
                 ));

UPDATE AD_FIELD_TRL
   SET NAME =
          (SELECT p.NAME
             FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id
              AND p.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE),
       description =
          (SELECT p.description
             FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id
              AND p.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE),
       HELP =
          (SELECT p.HELP
             FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id
              AND p.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE),
       istranslated =
          (SELECT p.istranslated
             FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f
            WHERE p.ad_process_id = c.ad_process_id
              AND c.ad_column_id = f.ad_column_id
              AND f.ad_field_id = AD_FIELD_TRL.ad_field_id
              AND p.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE),
       updated = current_timestamp
 WHERE EXISTS (
          SELECT 1
            FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f
           WHERE c.ad_process_id = p.ad_process_id
             AND f.ad_column_id = c.ad_column_id
             AND f.ad_field_id = AD_FIELD_TRL.ad_field_id
             AND p.AD_LANGUAGE = AD_FIELD_TRL.AD_LANGUAGE
             AND f.iscentrallymaintained = 'Y'
             AND f.isactive = 'Y'
             AND (   AD_FIELD_TRL.NAME <> p.NAME
                  OR COALESCE (AD_FIELD_TRL.description, ' ') <> COALESCE (p.description, ' ')
                  OR COALESCE (AD_FIELD_TRL.HELP, ' ') <> COALESCE (p.HELP, ' ')
                 ));

/*
-- check for element errors				 
SELECT   UPPER (e.columnname), COUNT (*)
    FROM AD_ELEMENT e
GROUP BY UPPER (e.columnname)
  HAVING COUNT (*) > 1;

SELECT   ROWID, ad_element_id, columnname,
         (SELECT COUNT (*)
            FROM AD_COLUMN c
           WHERE c.ad_element_id = AD_ELEMENT.ad_element_id) cnt
    FROM AD_ELEMENT
   WHERE UPPER (columnname) IN (SELECT   UPPER (e.columnname)
                                    FROM AD_ELEMENT e
                                GROUP BY UPPER (e.columnname)
                                  HAVING COUNT (*) > 1)
ORDER BY UPPER (columnname), columnname;
*/

UPDATE AD_PROCESS_PARA
   SET columnname = (SELECT e.columnname
                       FROM AD_ELEMENT e
                      -- WHERE UPPER (e.columnname) = UPPER (AD_PROCESS_PARA.columnname))
                      WHERE e.columnname = AD_PROCESS_PARA.columnname) -- Temporary patch Fixed Assets are broking it
 WHERE AD_PROCESS_PARA.iscentrallymaintained = 'Y'
   AND AD_PROCESS_PARA.isactive = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e
           WHERE UPPER (e.columnname) = UPPER (AD_PROCESS_PARA.columnname)
             AND e.columnname <> AD_PROCESS_PARA.columnname);

UPDATE AD_PROCESS_PARA
   SET iscentrallymaintained = 'N'
 WHERE iscentrallymaintained <> 'N'
   AND NOT EXISTS (SELECT 1
                     FROM AD_ELEMENT e
                    WHERE AD_PROCESS_PARA.columnname = e.columnname);

UPDATE AD_PROCESS_PARA
   SET NAME = (SELECT e.NAME
                 FROM AD_ELEMENT e
                WHERE e.columnname = AD_PROCESS_PARA.columnname),
       description = (SELECT e.description
                        FROM AD_ELEMENT e
                       WHERE e.columnname = AD_PROCESS_PARA.columnname),
       HELP = (SELECT e.HELP
                 FROM AD_ELEMENT e
                WHERE e.columnname = AD_PROCESS_PARA.columnname),
       updated = current_timestamp
 WHERE AD_PROCESS_PARA.iscentrallymaintained = 'Y'
   AND AD_PROCESS_PARA.isactive = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e
           WHERE e.columnname = AD_PROCESS_PARA.columnname
             AND (   AD_PROCESS_PARA.NAME <> e.NAME
                  OR COALESCE (AD_PROCESS_PARA.description, ' ') <> COALESCE (e.description, ' ')
                  OR COALESCE (AD_PROCESS_PARA.HELP, ' ') <> COALESCE (e.HELP, ' ')
                 ));

UPDATE AD_PROCESS_PARA_TRL
   SET NAME =
          (SELECT et.NAME
             FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f
            WHERE et.AD_LANGUAGE = AD_PROCESS_PARA_TRL.AD_LANGUAGE
              AND et.ad_element_id = e.ad_element_id
              AND e.columnname = f.columnname
              AND f.ad_process_para_id = AD_PROCESS_PARA_TRL.ad_process_para_id),
       description =
          (SELECT et.description
             FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f
            WHERE et.AD_LANGUAGE = AD_PROCESS_PARA_TRL.AD_LANGUAGE
              AND et.ad_element_id = e.ad_element_id
              AND e.columnname = f.columnname
              AND f.ad_process_para_id = AD_PROCESS_PARA_TRL.ad_process_para_id),
       HELP =
          (SELECT et.HELP
             FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f
            WHERE et.AD_LANGUAGE = AD_PROCESS_PARA_TRL.AD_LANGUAGE
              AND et.ad_element_id = e.ad_element_id
              AND e.columnname = f.columnname
              AND f.ad_process_para_id = AD_PROCESS_PARA_TRL.ad_process_para_id),
       istranslated =
          (SELECT et.istranslated
             FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f
            WHERE et.AD_LANGUAGE = AD_PROCESS_PARA_TRL.AD_LANGUAGE
              AND et.ad_element_id = e.ad_element_id
              AND e.columnname = f.columnname
              AND f.ad_process_para_id = AD_PROCESS_PARA_TRL.ad_process_para_id),
       updated = current_timestamp
 WHERE EXISTS (
          SELECT 1
            FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f
           WHERE et.AD_LANGUAGE = AD_PROCESS_PARA_TRL.AD_LANGUAGE
             AND et.ad_element_id = e.ad_element_id
             AND e.columnname = f.columnname
             AND f.ad_process_para_id = AD_PROCESS_PARA_TRL.ad_process_para_id
             AND f.iscentrallymaintained = 'Y'
             AND f.isactive = 'Y'
             AND (   AD_PROCESS_PARA_TRL.NAME <> et.NAME
                  OR COALESCE (AD_PROCESS_PARA_TRL.description, ' ') <> COALESCE (et.description, ' ')
                  OR COALESCE (AD_PROCESS_PARA_TRL.HELP, ' ') <> COALESCE (et.HELP, ' ')
                 ));

UPDATE AD_WF_NODE
   SET NAME = (SELECT w.NAME
                 FROM AD_WINDOW w
                WHERE w.ad_window_id = AD_WF_NODE.ad_window_id),
       description = (SELECT w.description
                        FROM AD_WINDOW w
                       WHERE w.ad_window_id = AD_WF_NODE.ad_window_id),
       HELP = (SELECT w.HELP
                 FROM AD_WINDOW w
                WHERE w.ad_window_id = AD_WF_NODE.ad_window_id)
 WHERE AD_WF_NODE.iscentrallymaintained = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_WINDOW w
           WHERE w.ad_window_id = AD_WF_NODE.ad_window_id
             AND (   w.NAME <> AD_WF_NODE.NAME
                  OR COALESCE (w.description, ' ') <> COALESCE (AD_WF_NODE.description, ' ')
                  OR COALESCE (w.HELP, ' ') <> COALESCE (AD_WF_NODE.HELP, ' ')
                 ));

UPDATE AD_WF_NODE_TRL
   SET NAME =
          (SELECT t.NAME
             FROM AD_WINDOW_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_window_id = t.ad_window_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       description =
          (SELECT t.description
             FROM AD_WINDOW_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_window_id = t.ad_window_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       HELP =
          (SELECT t.HELP
             FROM AD_WINDOW_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_window_id = t.ad_window_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_WINDOW_TRL t, AD_WF_NODE n
           WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
             AND n.ad_window_id = t.ad_window_id
             AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE
             AND n.iscentrallymaintained = 'Y'
             AND n.isactive = 'Y'
             AND (   AD_WF_NODE_TRL.NAME <> t.NAME
                  OR COALESCE (AD_WF_NODE_TRL.description, ' ') <> COALESCE (t.description, ' ')
                  OR COALESCE (AD_WF_NODE_TRL.HELP, ' ') <> COALESCE (t.HELP, ' ')
                 ));

UPDATE AD_WF_NODE
   SET NAME = 
       (SELECT f.NAME
            FROM AD_FORM f
           WHERE f.ad_form_id = AD_WF_NODE.ad_form_id),
       description = 
       (SELECT f.description
            FROM AD_FORM f
           WHERE f.ad_form_id = AD_WF_NODE.ad_form_id),
       HELP = 
       (SELECT f.HELP
            FROM AD_FORM f
           WHERE f.ad_form_id = AD_WF_NODE.ad_form_id)
 WHERE AD_WF_NODE.iscentrallymaintained = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_FORM f
           WHERE f.ad_form_id = AD_WF_NODE.ad_form_id
             AND (   f.NAME <> AD_WF_NODE.NAME
                  OR COALESCE (f.description, ' ') <> COALESCE (AD_WF_NODE.description, ' ')
                  OR COALESCE (f.HELP, ' ') <> COALESCE (AD_WF_NODE.HELP, ' ')
                 ));

UPDATE AD_WF_NODE_TRL
   SET NAME =
          (SELECT t.NAME
             FROM AD_FORM_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_form_id = t.ad_form_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       description =
          (SELECT t.description
             FROM AD_FORM_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_form_id = t.ad_form_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       HELP =
          (SELECT t.HELP
             FROM AD_FORM_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_form_id = t.ad_form_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_FORM_TRL t, AD_WF_NODE n
           WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
             AND n.ad_form_id = t.ad_form_id
             AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE
             AND n.iscentrallymaintained = 'Y'
             AND n.isactive = 'Y'
             AND (   AD_WF_NODE_TRL.NAME <> t.NAME
                  OR COALESCE (AD_WF_NODE_TRL.description, ' ') <> COALESCE (t.description, ' ')
                  OR COALESCE (AD_WF_NODE_TRL.HELP, ' ') <> COALESCE (t.HELP, ' ')
                 ));

UPDATE AD_WF_NODE
   SET NAME = 
       (SELECT f.NAME
            FROM AD_PROCESS f
           WHERE f.ad_process_id = AD_WF_NODE.ad_process_id),
       description = 
       (SELECT f.description
            FROM AD_PROCESS f
           WHERE f.ad_process_id = AD_WF_NODE.ad_process_id),
       HELP = 
       (SELECT f.HELP
            FROM AD_PROCESS f
           WHERE f.ad_process_id = AD_WF_NODE.ad_process_id)
 WHERE AD_WF_NODE.iscentrallymaintained = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_PROCESS f
           WHERE f.ad_process_id = AD_WF_NODE.ad_process_id
             AND (   f.NAME <> AD_WF_NODE.NAME
                  OR COALESCE (f.description, ' ') <> COALESCE (AD_WF_NODE.description, ' ')
                  OR COALESCE (f.HELP, ' ') <> COALESCE (AD_WF_NODE.HELP, ' ')
                 ));

UPDATE AD_WF_NODE_TRL
   SET NAME =
          (SELECT t.NAME
             FROM AD_PROCESS_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_process_id = t.ad_process_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       description =
          (SELECT t.description
             FROM AD_PROCESS_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_process_id = t.ad_process_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE),
       HELP =
          (SELECT t.HELP
             FROM AD_PROCESS_TRL t, AD_WF_NODE n
            WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
              AND n.ad_process_id = t.ad_process_id
              AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_PROCESS_TRL t, AD_WF_NODE n
           WHERE AD_WF_NODE_TRL.ad_wf_node_id = n.ad_wf_node_id
             AND n.ad_process_id = t.ad_process_id
             AND AD_WF_NODE_TRL.AD_LANGUAGE = t.AD_LANGUAGE
             AND n.iscentrallymaintained = 'Y'
             AND n.isactive = 'Y'
             AND (   AD_WF_NODE_TRL.NAME <> t.NAME
                  OR COALESCE (AD_WF_NODE_TRL.description, ' ') <> COALESCE (t.description, ' ')
                  OR COALESCE (AD_WF_NODE_TRL.HELP, ' ') <> COALESCE (t.HELP, ' ')
                 ));

UPDATE AD_PRINTFORMATITEM
   SET NAME =
          (SELECT e.NAME
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_PRINTFORMATITEM.ad_column_id)
 WHERE AD_PRINTFORMATITEM.iscentrallymaintained = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e, AD_COLUMN c
           WHERE e.ad_element_id = c.ad_element_id
             AND c.ad_column_id = AD_PRINTFORMATITEM.ad_column_id
             AND e.NAME <> AD_PRINTFORMATITEM.NAME)
   AND EXISTS (
          SELECT 1
            FROM AD_CLIENT
           WHERE ad_client_id = AD_PRINTFORMATITEM.ad_client_id
             AND ismultilingualdocument = 'Y');

UPDATE AD_PRINTFORMATITEM
   SET printname =
          (SELECT e.printname
             FROM AD_ELEMENT e, AD_COLUMN c
            WHERE e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = AD_PRINTFORMATITEM.ad_column_id)
 WHERE AD_PRINTFORMATITEM.iscentrallymaintained = 'Y'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e, AD_COLUMN c, AD_PRINTFORMAT pf
           WHERE e.ad_element_id = c.ad_element_id
             AND c.ad_column_id = AD_PRINTFORMATITEM.ad_column_id
             AND LENGTH (AD_PRINTFORMATITEM.printname) > 0
             AND e.printname <> AD_PRINTFORMATITEM.printname
             AND pf.ad_printformat_id = AD_PRINTFORMATITEM.ad_printformat_id
             AND pf.isform = 'N'
             AND istablebased = 'Y')
   AND EXISTS (
          SELECT 1
            FROM AD_CLIENT
           WHERE ad_client_id = AD_PRINTFORMATITEM.ad_client_id
             AND ismultilingualdocument = 'Y');

UPDATE AD_PRINTFORMATITEM_TRL
   SET printname =
          (SELECT e.printname
             FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_PRINTFORMATITEM pfi
            WHERE e.AD_LANGUAGE = AD_PRINTFORMATITEM_TRL.AD_LANGUAGE
              AND e.ad_element_id = c.ad_element_id
              AND c.ad_column_id = pfi.ad_column_id
              AND pfi.ad_printformatitem_id = AD_PRINTFORMATITEM_TRL.ad_printformatitem_id)
 WHERE EXISTS (
          SELECT 1
            FROM AD_ELEMENT_TRL e,
                 AD_COLUMN c,
                 AD_PRINTFORMATITEM pfi,
                 AD_PRINTFORMAT pf
           WHERE e.AD_LANGUAGE = AD_PRINTFORMATITEM_TRL.AD_LANGUAGE
             AND e.ad_element_id = c.ad_element_id
             AND c.ad_column_id = pfi.ad_column_id
             AND pfi.ad_printformatitem_id = AD_PRINTFORMATITEM_TRL.ad_printformatitem_id
             AND pfi.iscentrallymaintained = 'Y'
             AND LENGTH (pfi.printname) > 0
             AND (e.printname <> AD_PRINTFORMATITEM_TRL.printname OR AD_PRINTFORMATITEM_TRL.printname IS NULL)
             AND pf.ad_printformat_id = pfi.ad_printformat_id
             AND pf.isform = 'N'
             AND istablebased = 'Y')
   AND EXISTS (
          SELECT 1
            FROM AD_CLIENT
           WHERE ad_client_id = AD_PRINTFORMATITEM_TRL.ad_client_id
             AND ismultilingualdocument = 'Y');

UPDATE AD_PRINTFORMATITEM_TRL
   SET printname =
                (SELECT pfi.printname
                   FROM AD_PRINTFORMATITEM pfi
                  WHERE pfi.ad_printformatitem_id = AD_PRINTFORMATITEM_TRL.ad_printformatitem_id)
 WHERE EXISTS (
          SELECT 1
            FROM AD_PRINTFORMATITEM pfi, AD_PRINTFORMAT pf
           WHERE pfi.ad_printformatitem_id = AD_PRINTFORMATITEM_TRL.ad_printformatitem_id
             AND pfi.iscentrallymaintained = 'Y'
             AND LENGTH (pfi.printname) > 0
             AND pfi.printname <> AD_PRINTFORMATITEM_TRL.printname
             AND pf.ad_printformat_id = pfi.ad_printformat_id
             AND pf.isform = 'N'
             AND pf.istablebased = 'Y')
   AND EXISTS (
          SELECT 1
            FROM AD_CLIENT
           WHERE ad_client_id = AD_PRINTFORMATITEM_TRL.ad_client_id
             AND ismultilingualdocument = 'N');

UPDATE AD_PRINTFORMATITEM_TRL
   SET printname = NULL
 WHERE printname IS NOT NULL
   AND EXISTS (
          SELECT 1
            FROM AD_PRINTFORMATITEM pfi
           WHERE pfi.ad_printformatitem_id = AD_PRINTFORMATITEM_TRL.ad_printformatitem_id
             AND pfi.iscentrallymaintained = 'Y'
             AND (LENGTH (pfi.printname) = 0 OR pfi.printname IS NULL));

UPDATE AD_MENU
   SET NAME = (SELECT NAME
                 FROM AD_WINDOW w
                WHERE AD_MENU.ad_window_id = w.ad_window_id),
       description = (SELECT description
                        FROM AD_WINDOW w
                       WHERE AD_MENU.ad_window_id = w.ad_window_id)
 WHERE ad_window_id IS NOT NULL AND action = 'W';

UPDATE AD_MENU_TRL
   SET NAME =
          (SELECT wt.NAME
             FROM AD_WINDOW_TRL wt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_window_id = wt.ad_window_id
              AND AD_MENU_TRL.AD_LANGUAGE = wt.AD_LANGUAGE),
       description =
          (SELECT wt.description
             FROM AD_WINDOW_TRL wt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_window_id = wt.ad_window_id
              AND AD_MENU_TRL.AD_LANGUAGE = wt.AD_LANGUAGE),
       istranslated =
          (SELECT wt.istranslated
             FROM AD_WINDOW_TRL wt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_window_id = wt.ad_window_id
              AND AD_MENU_TRL.AD_LANGUAGE = wt.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_WINDOW_TRL wt, AD_MENU m
           WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
             AND m.ad_window_id = wt.ad_window_id
             AND AD_MENU_TRL.AD_LANGUAGE = wt.AD_LANGUAGE
             AND m.ad_window_id IS NOT NULL
             AND m.action = 'W');

UPDATE AD_MENU
   SET NAME = (SELECT p.NAME
                 FROM AD_PROCESS p
                WHERE AD_MENU.ad_process_id = p.ad_process_id),
       description = (SELECT p.description
                        FROM AD_PROCESS p
                       WHERE AD_MENU.ad_process_id = p.ad_process_id)
 WHERE AD_MENU.ad_process_id IS NOT NULL AND AD_MENU.action IN ('R', 'P');

UPDATE AD_MENU_TRL
   SET NAME =
          (SELECT pt.NAME
             FROM AD_PROCESS_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_process_id = pt.ad_process_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE),
       description =
          (SELECT pt.description
             FROM AD_PROCESS_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_process_id = pt.ad_process_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE),
       istranslated =
          (SELECT pt.istranslated
             FROM AD_PROCESS_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_process_id = pt.ad_process_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_PROCESS_TRL pt, AD_MENU m
           WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
             AND m.ad_process_id = pt.ad_process_id
             AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE
             AND m.ad_process_id IS NOT NULL
             AND action IN ('R', 'P'));

UPDATE AD_MENU
   SET NAME = (SELECT NAME
                 FROM AD_FORM f
                WHERE AD_MENU.ad_form_id = f.ad_form_id),
       description = (SELECT description
                        FROM AD_FORM f
                       WHERE AD_MENU.ad_form_id = f.ad_form_id)
 WHERE ad_form_id IS NOT NULL AND action = 'X';

UPDATE AD_MENU_TRL
   SET NAME =
          (SELECT ft.NAME
             FROM AD_FORM_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_form_id = ft.ad_form_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE),
       description =
          (SELECT ft.description
             FROM AD_FORM_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_form_id = ft.ad_form_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE),
       istranslated =
          (SELECT ft.istranslated
             FROM AD_FORM_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_form_id = ft.ad_form_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_FORM_TRL ft, AD_MENU m
           WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
             AND m.ad_form_id = ft.ad_form_id
             AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE
             AND m.ad_form_id IS NOT NULL
             AND action = 'X');

UPDATE AD_MENU
   SET NAME = (SELECT p.NAME
                 FROM AD_WORKFLOW p
                WHERE AD_MENU.ad_workflow_id = p.ad_workflow_id),
       description = (SELECT p.description
                        FROM AD_WORKFLOW p
                       WHERE AD_MENU.ad_workflow_id = p.ad_workflow_id)
 WHERE AD_MENU.ad_workflow_id IS NOT NULL AND AD_MENU.action = 'F';

UPDATE AD_MENU_TRL
   SET NAME =
          (SELECT pt.NAME
             FROM AD_WORKFLOW_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_workflow_id = pt.ad_workflow_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE),
       description =
          (SELECT pt.description
             FROM AD_WORKFLOW_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_workflow_id = pt.ad_workflow_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE),
       istranslated =
          (SELECT pt.istranslated
             FROM AD_WORKFLOW_TRL pt, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_workflow_id = pt.ad_workflow_id
              AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_WORKFLOW_TRL pt, AD_MENU m
           WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
             AND m.ad_workflow_id = pt.ad_workflow_id
             AND AD_MENU_TRL.AD_LANGUAGE = pt.AD_LANGUAGE
             AND m.ad_workflow_id IS NOT NULL
             AND action = 'F');

UPDATE AD_MENU
   SET NAME = (SELECT NAME
                 FROM AD_TASK f
                WHERE AD_MENU.ad_task_id = f.ad_task_id),
       description = (SELECT description
                        FROM AD_TASK f
                       WHERE AD_MENU.ad_task_id = f.ad_task_id)
 WHERE ad_task_id IS NOT NULL AND action = 'T';

UPDATE AD_MENU_TRL
   SET NAME =
          (SELECT ft.NAME
             FROM AD_TASK_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_task_id = ft.ad_task_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE),
       description =
          (SELECT ft.description
             FROM AD_TASK_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_task_id = ft.ad_task_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE),
       istranslated =
          (SELECT ft.istranslated
             FROM AD_TASK_TRL ft, AD_MENU m
            WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
              AND m.ad_task_id = ft.ad_task_id
              AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_TASK_TRL ft, AD_MENU m
           WHERE AD_MENU_TRL.ad_menu_id = m.ad_menu_id
             AND m.ad_task_id = ft.ad_task_id
             AND AD_MENU_TRL.AD_LANGUAGE = ft.AD_LANGUAGE
             AND m.ad_task_id IS NOT NULL
             AND action = 'T');

UPDATE AD_COLUMN
   SET NAME = 
       (SELECT e.NAME
            FROM AD_ELEMENT e
           WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       description = 
       (SELECT e.description
            FROM AD_ELEMENT e
           WHERE AD_COLUMN.ad_element_id = e.ad_element_id),
       HELP = 
       (SELECT e.HELP
            FROM AD_ELEMENT e
           WHERE AD_COLUMN.ad_element_id = e.ad_element_id)
 WHERE EXISTS (SELECT 1
                 FROM AD_ELEMENT e
                WHERE AD_COLUMN.ad_element_id = e.ad_element_id AND AD_COLUMN.NAME <> e.NAME);

UPDATE AD_COLUMN_TRL
   SET NAME =
          (SELECT e.NAME
             FROM AD_COLUMN c INNER JOIN AD_ELEMENT_TRL e
                  ON (c.ad_element_id = e.ad_element_id)
            WHERE AD_COLUMN_TRL.ad_column_id = c.ad_column_id
              AND AD_COLUMN_TRL.AD_LANGUAGE = e.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_COLUMN c INNER JOIN AD_ELEMENT_TRL e
                 ON (c.ad_element_id = e.ad_element_id)
           WHERE AD_COLUMN_TRL.ad_column_id = c.ad_column_id
             AND AD_COLUMN_TRL.AD_LANGUAGE = e.AD_LANGUAGE
             AND AD_COLUMN_TRL.NAME <> e.NAME);

UPDATE AD_TABLE
   SET NAME = 
        (SELECT e.NAME
            FROM AD_ELEMENT e
           WHERE AD_TABLE.tablename || '_ID' = e.columnname),
       description = 
        (SELECT e.description
            FROM AD_ELEMENT e
           WHERE AD_TABLE.tablename || '_ID' = e.columnname)
 WHERE EXISTS (SELECT 1
                 FROM AD_ELEMENT e
                WHERE AD_TABLE.tablename || '_ID' = e.columnname AND AD_TABLE.NAME <> e.NAME);

UPDATE AD_TABLE_TRL
   SET NAME =
          (SELECT e.NAME
             FROM AD_TABLE t INNER JOIN AD_ELEMENT ex
                  ON (t.tablename || '_ID' = ex.columnname)
                  INNER JOIN AD_ELEMENT_TRL e
                  ON (ex.ad_element_id = e.ad_element_id)
            WHERE AD_TABLE_TRL.ad_table_id = t.ad_table_id
              AND AD_TABLE_TRL.AD_LANGUAGE = e.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_TABLE t INNER JOIN AD_ELEMENT ex
                 ON (t.tablename || '_ID' = ex.columnname)
                 INNER JOIN AD_ELEMENT_TRL e
                 ON (ex.ad_element_id = e.ad_element_id)
           WHERE AD_TABLE_TRL.ad_table_id = t.ad_table_id
             AND AD_TABLE_TRL.AD_LANGUAGE = e.AD_LANGUAGE
             AND AD_TABLE_TRL.NAME <> e.NAME);

UPDATE AD_TABLE
     SET NAME =
          (SELECT e.NAME || ' Trl'
             FROM AD_ELEMENT e
            WHERE SUBSTR (AD_TABLE.tablename, 1, LENGTH (AD_TABLE.tablename) - 4) || '_ID' =
                                                                  e.columnname),
       description =
          (SELECT e.description
             FROM AD_ELEMENT e
            WHERE SUBSTR (AD_TABLE.tablename, 1, LENGTH (AD_TABLE.tablename) - 4) || '_ID' =
                                                                  e.columnname)
 WHERE tablename LIKE '%_Trl'
   AND EXISTS (
          SELECT 1
            FROM AD_ELEMENT e
           WHERE SUBSTR (AD_TABLE.tablename, 1, LENGTH (AD_TABLE.tablename) - 4) || '_ID' =
                                                                  e.columnname
             AND AD_TABLE.NAME <> e.NAME);

UPDATE AD_TABLE_TRL
   SET NAME =
          (SELECT e.NAME || ' **'
             FROM AD_TABLE t INNER JOIN AD_ELEMENT ex
                  ON (SUBSTR (t.tablename, 1, LENGTH (t.tablename) - 4)
                      || '_ID' = ex.columnname
                     )
                  INNER JOIN AD_ELEMENT_TRL e
                  ON (ex.ad_element_id = e.ad_element_id)
            WHERE AD_TABLE_TRL.ad_table_id = t.ad_table_id
              AND AD_TABLE_TRL.AD_LANGUAGE = e.AD_LANGUAGE)
 WHERE EXISTS (
          SELECT 1
            FROM AD_TABLE t INNER JOIN AD_ELEMENT ex
                 ON (SUBSTR (t.tablename, 1, LENGTH (t.tablename) - 4)
                     || '_ID' = ex.columnname
                    )
                 INNER JOIN AD_ELEMENT_TRL e
                 ON (ex.ad_element_id = e.ad_element_id)
           WHERE AD_TABLE_TRL.ad_table_id = t.ad_table_id
             AND AD_TABLE_TRL.AD_LANGUAGE = e.AD_LANGUAGE
             AND t.tablename LIKE '%_Trl'
             AND AD_TABLE_TRL.NAME <> e.NAME);

COMMIT ;
