Schema comparison

I am trying to compare two schemas running (both) in Oracle 11g. Is there any tool in Oracle to do that? SQLDeveloper? I tried with a tool called TOAD and I got a report saying that there was no difference. But we know for sure at least one procedure is different because we had changed it before the test (still has the same parameters and return but different logic inside). So, we thought the result was invalid. Anyway, please, let me know what else we can use.
Thanks!

Did you check the options in toad. If you are not comparing procedures then it won't compare them.
Div.

Similar Messages

  • Schema Comparisons - Ignore column order

    I'm using SSDT for the first time and I want to be able to ignore column ordering when doing schema comparisons.
    There was a setting in GDR that I cannot find called - "Force table column order to be identical" - does this still exist?
    Also in the old sqldeployment file there was an IgnoreColumnOrder setting. Cannot find either of these.

    It's unfortunate that the general attitude of Microsoft seems to be geared towards coming up with excuses and explanations instead of solutions. I was excited to use schema/data compare in VS2013 but found that it's basically useless to us because of the
    lack of this feature. I'm just glad there are other reasonable programs on the market to do comparisons (RedGate, for example).
    It's evident that each year Microsoft becomes even more detached from reality. People complained about IE, Microsoft didn't solve the problems, and now hardly anyone uses IE. No one is going to use this shoddy comparison tool for the same reasons. You're
    just wasting people's time with incomplete products like this, and that's frustrating and builds resentment in the people who are paying to use your products and services. I'll have no problem jumping ship for any given Microsoft product the second a competitor
    releases something better.

  • Comparison of schemas across different database Instances

    Hi All,
    I need to compare around 8 schemas across 4 different instances. We expect them to be same (atleast constraints and indxes) but we have some exceptions. Don't have any database link. I tried using PL/SQL developer , it gives only changes for source db vs target db. Which is the best tool for this purpose?

    Here is for remote Schema comparison:
    compareRemoteSchemaDDL.sql
    This script compares the database tables and columns between
    two schemas in separate databases (local schema and a remote
    schema).
    This script should be run from the schema of the local user.
    A database link will need to be created in order to compare
    the schemas.
    column sid_name new_value local_schema
    column this_user new_value local_user
    select substr(global_name, 1, (instr(global_name, '.')) - 1) sid_name, user this_user
    from global_name;
    select db_link from user_db_links;
    define remote_schema=&which_db_link
    spool &spool_file
    set verify off
    column len format 999
    column cons_column format a20 truncate
    column object_name format a30
    break on table_name nodup skip 1
    set pages 999
    set lines 110
    prompt ********************************************************************
    prompt *
    prompt * Comparison of Local Data Base to Remote Data Base
    prompt *
    prompt * User: &local_user
    prompt *
    prompt * Local Data Base: &local_schema
    prompt * Remote Data Base: &remote_schema
    prompt *
    prompt ********************************************************************
    prompt **** Additional Tables on Local DB &local_schema ****
    Select table_name from user_tables
    MINUS
    Select table_name from user_tables@&remote_schema
    order by 1;
    prompt **** Additional Tables on Remote DB &remote_schema ****
    Select table_name from user_tables@&remote_schema
    MINUS
    Select table_name from user_tables
    order by 1;
    prompt **** Additional Columns on Local DB &local_schema ****
    Select table_name, column_name from user_tab_columns
    MINUS
    Select table_name, column_name from user_tab_columns@&remote_schema
    order by 1, 2;
    prompt **** Additional Columns on Remote DB &remote_schema ****
    Select table_name, column_name from user_tab_columns@&remote_schema
    MINUS
    Select table_name, column_name from user_tab_columns
    order by 1, 2;
    prompt **** Columns Changed on Local DB &local_schema ****
    Select c1.table_name, c1.column_name, c1.data_type, c1.data_length len
    from user_tab_columns c1, user_tab_columns@&remote_schema c2
    where c1.table_name = c2.table_name and c1.column_name = c2.column_name
    and ( c1.data_type <> c2.data_type or c1.data_length <> c2.data_length
    or c1.nullable <> c2.nullable
    or nvl(c1.data_precision,0) <> nvl(c2.data_precision,0)
    or nvl(c1.data_scale,0) <> nvl(c2.data_scale,0) )
    order by 1, 2;
    prompt **** Additional Indexes on Local DB &local_schema ****
    Select decode(substr(INDEX_NAME,1,4), 'SYS_', 'SYS_', INDEX_NAME) INDEX_NAME
    from user_indexes
    MINUS
    Select decode(substr(INDEX_NAME,1,4), 'SYS_', 'SYS_', INDEX_NAME) INDEX_NAME
    from user_indexes@&remote_schema
    order by 1;
    prompt **** Additional Indexes on Remote DB &remote_schema ****
    Select decode(substr(INDEX_NAME,1,4), 'SYS_', 'SYS_', INDEX_NAME) INDEX_NAME
    from user_indexes@&remote_schema
    MINUS
    Select decode(substr(INDEX_NAME,1,4), 'SYS_', 'SYS_', INDEX_NAME) INDEX_NAME
    from user_indexes;
    prompt **** Additional Objects on Local DB &local_schema ****
    Select object_name, object_type from user_objects
    where object_type in ( 'PACKAGE', 'FUNCTION', 'PROCEDURE', 'VIEW', 'SEQUENCE' )
    MINUS
    Select object_name, object_type from user_objects@&remote_schema
    where object_type in ( 'PACKAGE', 'FUNCTION', 'PROCEDURE', 'VIEW', 'SEQUENCE' )
    order by 1, 2;
    prompt **** Additional Objects on Remote DB &remote_schema ****
    Select object_name, object_type from user_objects@&remote_schema
    where object_type in ( 'PACKAGE', 'FUNCTION', 'PROCEDURE', 'VIEW', 'SEQUENCE' )
    MINUS
    Select object_name, object_type from user_objects
    where object_type in ( 'PACKAGE', 'FUNCTION', 'PROCEDURE', 'VIEW', 'SEQUENCE' )
    order by 1, 2;
    prompt **** Additional Triggers on Local DB &local_schema ****
    Select trigger_name, trigger_type, table_name from user_triggers
    MINUS
    Select trigger_name, trigger_type, table_name from user_triggers@&remote_schema
    order by 1;
    prompt **** Additional Triggers on Remote DB &remote_schema ****
    Select trigger_name, trigger_type, table_name from user_triggers@&remote_schema
    MINUS
    Select trigger_name, trigger_type, table_name from user_triggers
    order by 1;
    Prompt **** Additional Constraints on Local DB &local_schema ****
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    CONSTRAINT_TYPE
    from USER_CONSTRAINTS
    MINUS
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    CONSTRAINT_TYPE
    from USER_CONSTRAINTS@&remote_schema
    order by 1, 2, 3;
    Prompt **** Additional Constraints on Remote DB &remote_schema ****
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    CONSTRAINT_TYPE
    from USER_CONSTRAINTS@&remote_schema
    MINUS
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    CONSTRAINT_TYPE
    from USER_CONSTRAINTS
    order by 1, 2, 3;
    Prompt **** Additional Constraints Columns on Local DB &local_schema ****
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    COLUMN_NAME cons_column
    from USER_CONS_COLUMNS
    MINUS
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    COLUMN_NAME cons_column
    from USER_CONS_COLUMNS@&remote_schema
    order by 1, 2, 3;
    Prompt **** Additional Constraints Columns on Remote DB &remote_schema ****
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    COLUMN_NAME cons_column
    from USER_CONS_COLUMNS@&remote_schema
    MINUS
    Select TABLE_NAME,
    decode ( substr (CONSTRAINT_NAME,1,5), 'SYS_C', 'SYS_C',
    CONSTRAINT_NAME ) CONSTRAINT_NAME,
    COLUMN_NAME cons_column
    from USER_CONS_COLUMNS
    order by 1, 2, 3;
    prompt **** Additional Public Synonyms on Local DB &local_schema ****
    Select owner, synonym_name from dba_synonyms
    where owner = 'PUBLIC'
    and table_owner = UPPER('&local_user')
    MINUS
    Select owner, synonym_name from dba_synonyms@&remote_schema
    where owner = 'PUBLIC'
    and table_owner = UPPER('&local_user')
    order by 1;
    prompt **** Additional Public Synonyms on Remote DB &remote_schema ****
    Select owner, synonym_name from dba_synonyms@&remote_schema
    where owner = 'PUBLIC'
    and table_owner = UPPER('&local_user')
    MINUS
    Select owner, synonym_name from dba_synonyms
    where owner = 'PUBLIC'
    and table_owner = UPPER('&local_user')
    order by 1;
    spool off
    Daljit Singh

  • Sending Comparison Report from OEM Grid

    Hi All
    I have configured a job to compare a schema objects in two database. I used Grid Control's Change Manager for this. I want an email
    to be sent me when ever a comparison job completes and this email should
    contain the comparison report of the comparison. I need a report same as we use
    to have in change manager which comes with Oracle Administration Client and
    generates and HTML report of schema comparison. Can you please help me setting
    this. I have already setup configuration of my mail server and email adderess
    in my OEM Grid control.
    Thanks

    What you first need to do is set up a notification method.
    Then you will need to set up your own notification schedule.
    Then add the job you are wanting to run and be alerted on to the notification rules.
    Then you will want to subscribe to that/those rules.
    Then you will want to check the notification you wish to get in the job itself.

  • How to compare two oracle database schemas

    hi all,
    i want to compare and find out differences between two oracle databases. The comparison should be made on between table definition,table data,primary and foreign keys, packages and functions.
    Is there any management console or tool embedded in the oracle enterprise manger?
    it is really appreciate if anyone can point me towards wright direction asap.

    Hi ,
    This script would help u a lot in comparing 2 schemas and generate a report on them.
    Script:
    This script will compare two Oracle schemas and generate a report of
    discrepencies and this script has been used against Oracle 7.3.4, 8.0.5,
    REM and 8.1.7 databases, but it should also work with other versions.
    REM
    REM Please note that the following schema object types and attributes are
    REM not compared by this script at this time:
    REM
    REM cluster definitions
    REM comments on tables and columns
    REM nesting, partition, IOT, and temporary attributes of tables
    REM snapshots/materialized views, logs, and refresh groups
    REM foreign function libraries
    REM object types
    REM operators
    REM indextypes
    REM dimensions
    REM auditing information
    REM new schema attributes added for Oracle 9i
    REM
    REM Version 02-04-2002
    REM
    PROMPT
    PROMPT Schema Comparison
    PROMPT =================
    PROMPT
    PROMPT Run this script while connected to one Oracle schema. Enter the Oracle
    PROMPT username, password, and SQL*Net / Net8 service name of a second schema.
    PROMPT This script will compare the two schemas and generate a report of
    PROMPT differences.
    PROMPT
    PROMPT A temporary database link and table will be created and dropped by
    PROMPT this script.
    PROMPT
    ACCEPT schema CHAR PROMPT "Enter username for remote schema: "
    ACCEPT passwd CHAR PROMPT "Enter password for remote schema: " HIDE
    ACCEPT tnssvc CHAR PROMPT "Enter SQL*Net / Net8 service for remote schema: "
    PROMPT
    ACCEPT report CHAR PROMPT "Enter filename for report output: "
    SET FEEDBACK OFF
    SET VERIFY OFF
    CREATE DATABASE LINK rem_schema CONNECT TO &schema IDENTIFIED BY &passwd
    USING '&tnssvc';
    SET TRIMSPOOL ON
    SPOOL &report
    SELECT SUBSTR (RPAD (TO_CHAR (SYSDATE, 'mm/dd/yyyy hh24:mi:ss'), 25), 1, 25)
    "REPORT DATE AND TIME"
    FROM SYS.dual;
    COL local_schema FORMAT a35 TRUNC HEADING "LOCAL SCHEMA"
    COL remote_schema FORMAT a35 TRUNC HEADING "REMOTE SCHEMA"
    SELECT USER || '@' || C.global_name local_schema,
    A.username || '@' || B.global_name remote_schema
    FROM user_users@rem_schema A, global_name@rem_schema B, global_name C
    WHERE ROWNUM = 1;
    SET PAGESIZE 9999
    SET LINESIZE 250
    SET FEEDBACK 1
    SET TERMOUT OFF
    PROMPT
    REM Object differences
    REM ==================
    COL object_name FORMAT a30
    PROMPT SUMMARY OF OBJECTS MISSING FROM LOCAL SCHEMA
    SELECT object_type, COUNT (*)
    FROM
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name)
    FROM user_objects@rem_schema
    MINUS
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name)
    FROM user_objects
    GROUP BY object_type
    ORDER BY object_type;
    PROMPT SUMMARY OF EXTRANEOUS OBJECTS IN LOCAL SCHEMA
    SELECT object_type, COUNT (*)
    FROM
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name)
    FROM user_objects
    WHERE object_type != 'DATABASE LINK'
    OR object_name NOT LIKE 'REM_SCHEMA.%'
    MINUS
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name)
    FROM user_objects@rem_schema
    GROUP BY object_type
    ORDER BY object_type;
    PROMPT OBJECTS MISSING FROM LOCAL SCHEMA
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name) object_name
    FROM user_objects@rem_schema
    MINUS
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name) object_name
    FROM user_objects
    ORDER BY object_type, object_name;
    PROMPT EXTRANEOUS OBJECTS IN LOCAL SCHEMA
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name) object_name
    FROM user_objects
    WHERE object_type != 'DATABASE LINK'
    OR object_name NOT LIKE 'REM_SCHEMA.%'
    MINUS
    SELECT object_type,
    DECODE (object_type,
    'INDEX', DECODE (SUBSTR (object_name, 1, 5),
    'SYS_C', 'SYS_C', object_name),
    'LOB', DECODE (SUBSTR (object_name, 1, 7),
    'SYS_LOB', 'SYS_LOB', object_name),
    object_name) object_name
    FROM user_objects@rem_schema
    ORDER BY object_type, object_name;
    PROMPT OBJECTS IN LOCAL SCHEMA THAT ARE NOT VALID
    SELECT object_name, object_type, status
    FROM user_objects
    WHERE status != 'VALID'
    ORDER BY object_name, object_type;
    REM Table differences
    REM =================
    PROMPT TABLE COLUMNS MISSING FROM ONE SCHEMA
    PROMPT (NOTE THAT THIS REPORT DOES NOT LIST DISCREPENCIES IN COLUMN ORDER)
    SELECT table_name, column_name, 'Local' "MISSING IN SCHEMA"
    FROM user_tab_columns@rem_schema
    WHERE table_name IN
    SELECT table_name
    FROM user_tables
    MINUS
    SELECT table_name, column_name, 'Local' "MISSING IN SCHEMA"
    FROM user_tab_columns
    UNION ALL
    SELECT table_name, column_name, 'Remote' "MISSING IN SCHEMA"
    FROM user_tab_columns
    WHERE table_name IN
    SELECT table_name
    FROM user_tables@rem_schema
    MINUS
    SELECT table_name, column_name, 'Remote' "MISSING IN SCHEMA"
    FROM user_tab_columns@rem_schema
    ORDER BY 1, 2;
    COL schema FORMAT a15
    COL nullable FORMAT a8
    COL data_type FORMAT a9
    COL data_length FORMAT 9999 HEADING LENGTH
    COL data_precision FORMAT 9999 HEADING PRECISION
    COL data_scale FORMAT 9999 HEADING SCALE
    COL default_length FORMAT 9999 HEADING LENGTH_OF_DEFAULT_VALUE
    PROMPT DATATYPE DISCREPENCIES FOR TABLE COLUMNS THAT EXIST IN BOTH SCHEMAS
    SELECT table_name, column_name, 'Remote' schema,
    nullable, data_type, data_length, data_precision, data_scale,
    default_length
    FROM user_tab_columns@rem_schema
    WHERE (table_name, column_name) IN
    SELECT table_name, column_name
    FROM user_tab_columns
    MINUS
    SELECT table_name, column_name, 'Remote' schema,
    nullable, data_type, data_length, data_precision, data_scale,
    default_length
    FROM user_tab_columns
    UNION ALL
    SELECT table_name, column_name, 'Local' schema,
    nullable, data_type, data_length, data_precision, data_scale,
    default_length
    FROM user_tab_columns
    WHERE (table_name, column_name) IN
    SELECT table_name, column_name
    FROM user_tab_columns@rem_schema
    MINUS
    SELECT table_name, column_name, 'Local' schema,
    nullable, data_type, data_length, data_precision, data_scale,
    default_length
    FROM user_tab_columns@rem_schema
    ORDER BY 1, 2, 3;
    REM Index differences
    REM =================
    COL column_position FORMAT 999 HEADING ORDER
    PROMPT INDEX DISCREPENCIES FOR INDEXES THAT EXIST IN BOTH SCHEMAS
    SELECT A.index_name, 'Remote' schema, A.uniqueness, A.table_name,
    B.column_name, B.column_position
    FROM user_indexes@rem_schema A, user_ind_columns@rem_schema B
    WHERE A.index_name IN
    SELECT index_name
    FROM user_indexes
    AND B.index_name = A.index_name
    AND B.table_name = A.table_name
    MINUS
    SELECT A.index_name, 'Remote' schema, A.uniqueness, A.table_name,
    B.column_name, B.column_position
    FROM user_indexes A, user_ind_columns B
    WHERE B.index_name = A.index_name
    AND B.table_name = A.table_name
    UNION ALL
    SELECT A.index_name, 'Local' schema, A.uniqueness, A.table_name,
    B.column_name, B.column_position
    FROM user_indexes A, user_ind_columns B
    WHERE A.index_name IN
    SELECT index_name
    FROM user_indexes@rem_schema
    AND B.index_name = A.index_name
    AND B.table_name = A.table_name
    MINUS
    SELECT A.index_name, 'Local' schema, A.uniqueness, A.table_name,
    B.column_name, B.column_position
    FROM user_indexes@rem_schema A, user_ind_columns@rem_schema B
    WHERE B.index_name = A.index_name
    AND B.table_name = A.table_name
    ORDER BY 1, 2, 6;
    REM Constraint differences
    REM ======================
    PROMPT CONSTRAINT DISCREPENCIES FOR TABLES THAT EXIST IN BOTH SCHEMAS
    SET FEEDBACK OFF
    CREATE TABLE temp_schema_compare
    database NUMBER(1),
    object_name VARCHAR2(30),
    object_text VARCHAR2(2000),
    hash_value NUMBER
    DECLARE
    CURSOR c1 IS
    SELECT constraint_name, search_condition
    FROM user_constraints
    WHERE search_condition IS NOT NULL;
    CURSOR c2 IS
    SELECT constraint_name, search_condition
    FROM user_constraints@rem_schema
    WHERE search_condition IS NOT NULL;
    v_constraint_name VARCHAR2(30);
    v_search_condition VARCHAR2(32767);
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO v_constraint_name, v_search_condition;
    EXIT WHEN c1%NOTFOUND;
    v_search_condition := SUBSTR (v_search_condition, 1, 2000);
    INSERT INTO temp_schema_compare
    database, object_name, object_text
    VALUES
    1, v_constraint_name, v_search_condition
    END LOOP;
    CLOSE c1;
    OPEN c2;
    LOOP
    FETCH c2 INTO v_constraint_name, v_search_condition;
    EXIT WHEN c2%NOTFOUND;
    v_search_condition := SUBSTR (v_search_condition, 1, 2000);
    INSERT INTO temp_schema_compare
    database, object_name, object_text
    VALUES
    2, v_constraint_name, v_search_condition
    END LOOP;
    CLOSE c2;
    COMMIT;
    END;
    SET FEEDBACK 1
    SELECT REPLACE (TRANSLATE (A.constraint_name,'012345678','999999999'),
    '9', NULL) constraint_name,
    'Remote' schema, A.constraint_type, A.table_name,
    A.r_constraint_name, A.delete_rule, A.status, B.object_text
    FROM user_constraints@rem_schema A, temp_schema_compare B
    WHERE A.table_name IN
    SELECT table_name
    FROM user_tables
    AND B.database (+) = 2
    AND B.object_name (+) = A.constraint_name
    MINUS
    SELECT REPLACE (TRANSLATE (A.constraint_name,'012345678','999999999'),
    '9', NULL) constraint_name,
    'Remote' schema, A.constraint_type, A.table_name,
    A.r_constraint_name, A.delete_rule, A.status, B.object_text
    FROM user_constraints A, temp_schema_compare B
    WHERE B.database (+) = 1
    AND B.object_name (+) = A.constraint_name
    UNION ALL
    SELECT REPLACE (TRANSLATE (A.constraint_name,'012345678','999999999'),
    '9', NULL) constraint_name,
    'Local' schema, A.constraint_type, A.table_name,
    A.r_constraint_name, A.delete_rule, A.status, B.object_text
    FROM user_constraints A, temp_schema_compare B
    WHERE A.table_name IN
    SELECT table_name
    FROM user_tables@rem_schema
    AND B.database (+) = 1
    AND B.object_name (+) = A.constraint_name
    MINUS
    SELECT REPLACE (TRANSLATE (A.constraint_name,'012345678','999999999'),
    '9', NULL) constraint_name,
    'Local' schema, A.constraint_type, A.table_name,
    A.r_constraint_name, A.delete_rule, A.status, B.object_text
    FROM user_constraints@rem_schema A, temp_schema_compare B
    WHERE B.database (+) = 2
    AND B.object_name (+) = A.constraint_name
    ORDER BY 1, 4, 2;
    REM Database link differences
    REM =========================
    PROMPT DATABASE LINK DISCREPENCIES
    COL db_link FORMAT a40
    SELECT db_link, 'Remote' schema, username, host
    FROM user_db_links@rem_schema
    MINUS
    SELECT db_link, 'Remote' schema, username, host
    FROM user_db_links
    UNION ALL
    SELECT db_link, 'Local' schema, username, host
    FROM user_db_links
    WHERE db_link NOT LIKE 'REM_SCHEMA.%'
    MINUS
    SELECT db_link, 'Local' schema, username, host
    FROM user_db_links@rem_schema
    ORDER BY 1, 2;
    REM Sequence differences
    REM ====================
    PROMPT SEQUENCE DISCREPENCIES
    SELECT sequence_name, 'Remote' schema, min_value, max_value,
    increment_by, cycle_flag, order_flag, cache_size
    FROM user_sequences@rem_schema
    MINUS
    SELECT sequence_name, 'Remote' schema, min_value, max_value,
    increment_by, cycle_flag, order_flag, cache_size
    FROM user_sequences
    UNION ALL
    SELECT sequence_name, 'Local' schema, min_value, max_value,
    increment_by, cycle_flag, order_flag, cache_size
    FROM user_sequences
    MINUS
    SELECT sequence_name, 'Local' schema, min_value, max_value,
    increment_by, cycle_flag, order_flag, cache_size
    FROM user_sequences@rem_schema
    ORDER BY 1, 2;
    REM Private synonym differences
    REM ===========================
    PROMPT PRIVATE SYNONYM DISCREPENCIES
    SELECT synonym_name, 'Remote' schema, table_owner, table_name, db_link
    FROM user_synonyms@rem_schema
    MINUS
    SELECT synonym_name, 'Remote' schema, table_owner, table_name, db_link
    FROM user_synonyms
    UNION ALL
    SELECT synonym_name, 'Local' schema, table_owner, table_name, db_link
    FROM user_synonyms
    MINUS
    SELECT synonym_name, 'Local' schema, table_owner, table_name, db_link
    FROM user_synonyms@rem_schema
    ORDER BY 1, 2;
    REM PL/SQL differences
    REM ==================
    PROMPT SOURCE CODE DISCREPENCIES FOR PACKAGES, PROCEDURES, AND FUNCTIONS
    PROMPT THAT EXIST IN BOTH SCHEMAS
    SELECT name, type, COUNT (*) discrepencies
    FROM
    SELECT name, type, line, text
    FROM user_source@rem_schema
    WHERE (name, type) IN
    SELECT object_name, object_type
    FROM user_objects
    MINUS
    SELECT name, type, line, text
    FROM user_source
    UNION ALL
    SELECT name, type, line, text
    FROM user_source
    WHERE (name, type) IN
    SELECT object_name, object_type
    FROM user_objects@rem_schema
    MINUS
    SELECT name, type, line, text
    FROM user_source@rem_schema
    GROUP BY name, type
    ORDER BY name, type;
    PROMPT SOURCE CODE DISCREPENCIES FOR PACKAGES, PROCEDURES, AND FUNCTIONS
    PROMPT THAT EXIST IN BOTH SCHEMAS (CASE INSENSITIVE COMPARISON)
    SELECT name, type, COUNT (*) discrepencies
    FROM
    SELECT name, type, line, UPPER (text)
    FROM user_source@rem_schema
    WHERE (name, type) IN
    SELECT object_name, object_type
    FROM user_objects
    MINUS
    SELECT name, type, line, UPPER (text)
    FROM user_source
    UNION ALL
    SELECT name, type, line, UPPER (text)
    FROM user_source
    WHERE (name, type) IN
    SELECT object_name, object_type
    FROM user_objects@rem_schema
    MINUS
    SELECT name, type, line, UPPER (text)
    FROM user_source@rem_schema
    GROUP BY name, type
    ORDER BY name, type;
    REM Trigger differences
    REM ===================
    PROMPT TRIGGER DISCREPENCIES
    SET FEEDBACK OFF
    TRUNCATE TABLE temp_schema_compare;
    DECLARE
    CURSOR c1 IS
    SELECT trigger_name, trigger_body
    FROM user_triggers;
    CURSOR c2 IS
    SELECT trigger_name, trigger_body
    FROM user_triggers@rem_schema;
    v_trigger_name VARCHAR2(30);
    v_trigger_body VARCHAR2(32767);
    v_hash_value NUMBER;
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO v_trigger_name, v_trigger_body;
    EXIT WHEN c1%NOTFOUND;
    v_trigger_body := REPLACE (v_trigger_body, ' ', NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(9), NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(10), NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(13), NULL);
    v_trigger_body := UPPER (v_trigger_body);
    v_hash_value := dbms_utility.get_hash_value (v_trigger_body, 1, 65536);
    INSERT INTO temp_schema_compare (database, object_name, hash_value)
    VALUES (1, v_trigger_name, v_hash_value);
    END LOOP;
    CLOSE c1;
    OPEN c2;
    LOOP
    FETCH c2 INTO v_trigger_name, v_trigger_body;
    EXIT WHEN c2%NOTFOUND;
    v_trigger_body := REPLACE (v_trigger_body, ' ', NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(9), NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(10), NULL);
    v_trigger_body := REPLACE (v_trigger_body, CHR(13), NULL);
    v_trigger_body := UPPER (v_trigger_body);
    v_hash_value := dbms_utility.get_hash_value (v_trigger_body, 1, 65536);
    INSERT INTO temp_schema_compare (database, object_name, hash_value)
    VALUES (2, v_trigger_name, v_hash_value);
    END LOOP;
    CLOSE c2;
    END;
    SET FEEDBACK 1
    SELECT A.trigger_name, 'Local' schema, A.trigger_type,
    A.triggering_event, A.table_name, SUBSTR (A.referencing_names, 1, 30)
    referencing_names, SUBSTR (A.when_clause, 1, 30) when_clause,
    A.status, B.hash_value
    FROM user_triggers A, temp_schema_compare B
    WHERE B.object_name (+) = A.trigger_name
    AND B.database (+) = 1
    AND A.table_name IN
    SELECT table_name
    FROM user_tables@rem_schema
    MINUS
    SELECT A.trigger_name, 'Local' schema, A.trigger_type,
    A.triggering_event, A.table_name, SUBSTR (A.referencing_names, 1, 30)
    referencing_names, SUBSTR (A.when_clause, 1, 30) when_clause,
    A.status, B.hash_value
    FROM user_triggers@rem_schema A, temp_schema_compare B
    WHERE B.object_name (+) = A.trigger_name
    AND B.database (+) = 2
    UNION ALL
    SELECT A.trigger_name, 'Remote' schema, A.trigger_type,
    A.triggering_event, A.table_name, SUBSTR (A.referencing_names, 1, 30)
    referencing_names, SUBSTR (A.when_clause, 1, 30) when_clause,
    A.status, B.hash_value
    FROM user_triggers@rem_schema A, temp_schema_compare B
    WHERE B.object_name (+) = A.trigger_name
    AND B.database (+) = 2
    AND A.table_name IN
    SELECT table_name
    FROM user_tables
    MINUS
    SELECT A.trigger_name, 'Remote' schema, A.trigger_type,
    A.triggering_event, A.table_name, SUBSTR (A.referencing_names, 1, 30)
    referencing_names, SUBSTR (A.when_clause, 1, 30) when_clause,
    A.status, B.hash_value
    FROM user_triggers A, temp_schema_compare B
    WHERE B.object_name (+) = A.trigger_name
    AND B.database (+) = 1
    ORDER BY 1, 2, 5, 3;
    REM View differences
    REM ================
    PROMPT VIEW DISCREPENCIES
    SET FEEDBACK OFF
    TRUNCATE TABLE temp_schema_compare;
    DECLARE
    CURSOR c1 IS
    SELECT view_name, text
    FROM user_views;
    CURSOR c2 IS
    SELECT view_name, text
    FROM user_views@rem_schema;
    v_view_name VARCHAR2(30);
    v_text VARCHAR2(32767);
    v_hash_value NUMBER;
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO v_view_name, v_text;
    EXIT WHEN c1%NOTFOUND;
    v_text := REPLACE (v_text, ' ', NULL);
    v_text := REPLACE (v_text, CHR(9), NULL);
    v_text := REPLACE (v_text, CHR(10), NULL);
    v_text := REPLACE (v_text, CHR(13), NULL);
    v_text := UPPER (v_text);
    v_hash_value := dbms_utility.get_hash_value (v_text, 1, 65536);
    INSERT INTO temp_schema_compare (database, object_name, hash_value)
    VALUES (1, v_view_name, v_hash_value);
    END LOOP;
    CLOSE c1;
    OPEN c2;
    LOOP
    FETCH c2 INTO v_view_name, v_text;
    EXIT WHEN c2%NOTFOUND;
    v_text := REPLACE (v_text, ' ', NULL);
    v_text := REPLACE (v_text, CHR(9), NULL);
    v_text := REPLACE (v_text, CHR(10), NULL);
    v_text := REPLACE (v_text, CHR(13), NULL);
    v_text := UPPER (v_text);
    v_hash_value := dbms_utility.get_hash_value (v_text, 1, 65536);
    INSERT INTO temp_schema_compare (database, object_name, hash_value)
    VALUES (2, v_view_name, v_hash_value);
    END LOOP;
    CLOSE c2;
    END;
    SET FEEDBACK 1
    SELECT A.view_name, 'Local' schema, B.hash_value
    FROM user_views A, temp_schema_compare B
    WHERE B.object_name (+) = A.view_name
    AND B.database (+) = 1
    AND A.view_name IN
    SELECT view_name
    FROM user_views@rem_schema
    MINUS
    SELECT A.view_name, 'Local' schema, B.hash_value
    FROM user_views@rem_schema A, temp_schema_compare B
    WHERE B.object_name (+) = A.view_name
    AND B.database (+) = 2
    UNION ALL
    SELECT A.view_name, 'Remote' schema, B.hash_value
    FROM user_views@rem_schema A, temp_schema_compare B
    WHERE B.object_name (+) = A.view_name
    AND B.database (+) = 2
    AND A.view_name IN
    SELECT view_name
    FROM user_views
    MINUS
    SELECT A.view_name, 'Remote' schema, B.hash_value
    FROM user_views A, temp_schema_compare B
    WHERE B.object_name (+) = A.view_name
    AND B.database (+) = 1
    ORDER BY 1, 2;
    REM Job queue differences
    REM =====================
    COL what FORMAT a30
    COL interval FORMAT a30
    PROMPT JOB QUEUE DISCREPENCIES
    SELECT what, interval, 'Remote' schema
    FROM user_jobs@rem_schema
    MINUS
    SELECT what, interval, 'Remote' schema
    FROM user_jobs
    UNION ALL
    SELECT what, interval, 'Local' schema
    FROM user_jobs
    MINUS
    SELECT what, interval, 'Local' schema
    FROM user_jobs@rem_schema
    ORDER BY 1, 2, 3;
    REM Privilege differences
    REM =====================
    PROMPT OBJECT-LEVEL GRANT DISCREPENCIES
    SELECT owner, table_name, 'Remote' schema, grantee, privilege, grantable
    FROM user_tab_privs@rem_schema
    WHERE (owner, table_name) IN
    SELECT owner, object_name
    FROM all_objects
    MINUS
    SELECT owner, table_name, 'Remote' schema, grantee, privilege, grantable
    FROM user_tab_privs
    UNION ALL
    SELECT owner, table_name, 'Local' schema, grantee, privilege, grantable
    FROM user_tab_privs
    WHERE (owner, table_name) IN
    SELECT owner, object_name
    FROM all_objects@rem_schema
    MINUS
    SELECT owner, table_name, 'Local' schema, grantee, privilege, grantable
    FROM user_tab_privs@rem_schema
    ORDER BY 1, 2, 3;
    PROMPT SYSTEM PRIVILEGE DISCREPENCIES
    SELECT privilege, 'Remote' schema, admin_option
    FROM user_sys_privs@rem_schema
    MINUS
    SELECT privilege, 'Remote' schema, admin_option
    FROM user_sys_privs
    UNION ALL
    SELECT privilege, 'Local' schema, admin_option
    FROM user_sys_privs
    MINUS
    SELECT privilege, 'Local' schema, admin_option
    FROM user_sys_privs@rem_schema
    ORDER BY 1, 2;
    PROMPT ROLE PRIVILEGE DISCREPENCIES
    SELECT granted_role, 'Remote' schema, admin_option, default_role, os_granted
    FROM user_role_privs@rem_schema
    MINUS
    SELECT granted_role, 'Remote' schema, admin_option, default_role, os_granted
    FROM user_role_privs
    UNION ALL
    SELECT granted_role, 'Local' schema, admin_option, default_role, os_granted
    FROM user_role_privs
    MINUS
    SELECT granted_role, 'Local' schema, admin_option, default_role, os_granted
    FROM user_role_privs@rem_schema
    ORDER BY 1, 2;
    SPOOL OFF
    SET TERMOUT ON
    PROMPT
    PROMPT Report output written to &report
    SET FEEDBACK OFF
    DROP TABLE temp_schema_compare;
    DROP DATABASE LINK rem_schema;
    SET FEEDBACK 6
    SET PAGESIZE 20
    SET LINESIZE 80

  • Generic query on documenting and maintaining schema changes -Oracle 10g

    Hi All,
    This is a generic query and i was not getting any particular forum here to put this for suggestions and help.i have put this in the documentation forum also but havent got any inputs.
    Could you all please advise a good and easy way I can store all db related stuff including every detail and minutest change done.
    I work as a Oracle-DB developer and it has been particularly difficult to keep track the changes very much.
    We have a Development pipeline(a code base for development),Testing pipeline(another code base-for Testing)
    and then comes Production Deployment(another one for clients)
    Presently,we have all our DDL,SQL,etc everything scripts stored in a sort of shared location but keeping them updated with every change done
    in any of the above pipelines is very difficult and I end up finding discrepencies between the stored versions and what is in Testing and Production.
    I typically spend a good deal of time doing comparing the entire scripts,schema changes to try to figure out what the right and latest version of a script should be.
    So,need your inputs on any particular free tool,best practises and good process for tracking easily and also maintaining db changes.
    --Thanks
    Dev

    The problem with most configuration management systems is that they were made for files, not database objects. Files such as dlls get replaced by the new version upon deployment, but database tables do not. Tables get upgraded with alter scripts. So if you want to maintain create table scripts, you need to upgrade them with every change, as well as creating alter table scripts.
    For a free configuration management system, see http://subversion.tigris.org/. Such software will also do file comparisons including version comparison.
    For comparing installation scripts to existing schemas, I would create a new schema with the installation script and then compare that new schema to an existing schema using the schema comparison feature in Toad or PLSQL Developer.
    Alternately, you can forget about maintaining installation scripts and just take an export without data from your production or test schema whenever you need to create a new installation. You can also extract DDL from prod using the dbms_metadata package. Embarcadero Rapid SQL was also good for extracting DDL.

  • Schema Compare SqlDatabaseOptions Timeout

    Have a small Azure SQL DB (handful of tables and stored procs) that I been able to successfully import into Visual Studio 2013 as a DB project, and all the objects (tables and procs) do get imported properly. But when trying to do a comparison
    using Schema Compare tool between my project and the Azure SQL, I keep receiving an error message:
    "An error was received from SQL Server while attempting to reverse engineer elements of type Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlDatabaseOptions: Timeout expired."
    I have set my DB project property for target DB to Azure SQL Database, but it does nothing to solve the problem. I have also set that only tables and stored procedures are compared.
    I am not sure what am I missing here. Will note that I am using the new DB tier on Azure, but I don't think that makes a difference. My best guess it that my permissions are not set right, but it puzzles me that I was able to import the Azure SQL DB into
    the project initially without a problem, where a schema model had to be looked up.

    Hi Hrovje Maric,
    In theory, the new Schema Compare and Data Compare features in Visual Studio 2013 supports SQL Server and Windows Azure databases. Usually, when you want to compare your working database project with the database, you can use the schema compare by right
    clicking on your database project and selecting Schema Compare. However, according to your description, the timeout error occurs when you using schema compare. We need to check if your login have permission to view definition. Or if the database which be used
    for schema compare was restored from backups of other place, the users in the databases may lose their SID, you need to delete the database users and recreate them and then restart the schema comparison again.
    In addition, you can try to increase the query timeout allowed on the connection. In the Windows Registry, search the key "QueryTimeoutSeconds" and increase the value from 60 to 360 and try to use the schema compare and check if the timeouts error will disappear
    Visual Studio 2013.
    For more information, there is detail about Schema Compare for SQL Server in Visual Studio 2013, 
    you can review the following article.
    http://www.techbubbles.com/sql-server/schema-compare-for-sql-server-in-visual-studio-2013/
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • How to compare schema (offline) ?

    Hi all,
    We have requirement to compare two schema in different location: one is in the server in our office, and the other is one in client site. So this is offline comparation.
    What tools can we use for this ?
    Thank you for any help,
    xtanto

    What do you mean by offline schema compare?
    You can get an export of schema from your client end and dump the same in a dummy database/user at your office and carry out schema comparison with the copy that you have.
    You can use various tools like CA ERwin, TOAD. There are some free/open source schema compare tools available.

  • Export Schema Compare to HTML Report

    I've downloaded and installed the latest SQL Server Data Tools for VS 2012.  Is there anyway to export the results of the schema comparison into a report in CSV/Html format?  I understand that it can generate the sql diff script, but I want a
    readable report that I can use to show to people.

    Hi Sean, I think you'll be interested in the recent blog post covering how to generate schema comparison results using MSBuild. This is a command line tool but it supports saving results to a file and event using a custom XSD to define the report contents
    if the defaults aren't what you want. The blog post is at 
    http://blogs.msdn.com/b/ssdt/archive/2014/07/15/msbuild-support-for-schema-compare-is-available.aspx
    I believe this will cover your requirements. Regards,
    Kevin

  • Incremental comparison through  goldengate veridata

    Hi Experts
    I am using Goldengate veridata for schema comparison. Its every time perform complete backup. Is there any option for incremental comparison.
    and second issue that its take huge time to compare frequently change table, is there any work arround

    thanks alot for your time and help !!!
    First Sorry to late reply
    Yes i can use SQL predicate for comparison. But i want to know Goldengate Verdiata byself don't take care the incremental policy. for ddl and dml
    Suppose i have one table after first time comparison i add one column..., Suppose i dont have lastupdatedby column etc.

  • Report error:ORA-06502: PL/SQL: numeric or value error: character to number

    The oracle application express environment is created by installing the HTTP Server on the windows server and the application express 3.2.1 components on the 11.1.0.7 oracle database on UNIX. The installation is successfully and have not seen any issues during the installation. After completing all the steps, when tried to login and click the application builder or workspace components, I see the error message
    report error:ORA-06502: PL/SQL: numeric or value error: character to number.
    This error message is seen on most of the pages when trying to accessed and not able to understand the reasons behind it. Its a brand new environment setup and not even presented to developers to test it.
    Below error message is always seen when trying to access most of the components like application builder, schema comparison and some other tabs. Please advice
    report error:
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    Edited by: user589320 on Jun 9, 2011 5:17 PM

    I think its better you use APEX 4.x version ratherthan using old version.
    You will get more features and some bug fixes and also it's easy for you to get some help when you need.
    * If this answer is helpfull or correct then please mark it and grant the points.

  • Query to compare 2 different tables from 2 different database

    Is it possible to write a SQL query to compare 2 Tables from 2 different Oracle Database. Also I need a query to do the same when the database is same.
    Thanks in advance

    OK, well "compare" can mean one of two things: Compare structure or compare contents. Here is a quick script to compare column structures of two tables on one database:
    (select COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    DATA_PRECISION,
    DATA_SCALE,
    NULLABLE
    from dba_Tab_columns
    where owner=:OWNR1
    and table_name = :tablename
    minus
    select COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    DATA_PRECISION,
    DATA_SCALE,
    NULLABLE
    from dba_Tab_columns
    where owner=:ownr2
    and table_name = :tablename)
    union all
    (select COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    DATA_PRECISION,
    DATA_SCALE,
    NULLABLE
    from dba_Tab_columns
    where owner=:ownr2
    and table_name = :tablename
    minus
    select COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    DATA_PRECISION,
    DATA_SCALE,
    NULLABLE
    from dba_Tab_columns
    where owner=:ownr1
    and table_name = :tablename)
    If this query returns any rows, then these indicate that there are structural differences between the tables. We do a minus in both directions to ensure that an additional column in either schema will be returned in the query.
    If you are going across dblinks to remote tables then you have to amend the "dba_tab_columns" to "sys.dba_tab_columns@yourdblink"
    If you also want to compare indexes, triggers, etc then do the same sort of thing for the associated dba_ views for those objects.
    And if you want to compare table contents, then often the fastest way is also to check minuses in both directions, if the tables are not too big:
    e.g.
    (select * from schema1.table@dblink1
    minus
    select * from schema2.table@dblink2)
    union all
    (select * from schema2.table@dblink2
    minus
    select * from schema1.table@dblink1)
    local tables, of course, simply omit the "@dblink" issues.
    There are tools to help in such things. TOAD, for example, has a pretty good schema comparison tool, and there are plenty of other options out there. But if you need to script this yourself then the logic I've shown is a good starting point.
    Cheers,
    Mike

  • Sql table function that compares two tables column structure and returns each difference as a record in the returned table

    hi,
    Does anyone have or can show me the principle of a such kind of function ?

    see
    http://geekswithblogs.net/leonardm/archive/2010/01/14/table-schema-comparison-in-sql-server.aspx
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Want to understand SID concept...

    Hello experts,
    why not using the value like e. g. customer number directly in the dimension table instead of a SID? So I also could save one table (SID table)  and with this on JOIN by linking directly to the master data tables (text, attributes, hierarchies) using customer no. as key.
    Am I wrong? Is it only because of this INT4 thing with the SIDs whitch maybe results in better performance?
    What I maybe understand is compounding, it seems to be hard to make here a connection to the right master data table. But if I wouldn't have this case, why else could be this SID useful?
    Best regards,
    Peter

    Hello Siggi,
    thank you for your answer and the linke you provided. I think star schema concept and using surrogate ID's for dimension tables is absolute clear for me and I see the advantage there.
    How I said, faster DB access using INT4 values instead of characters is also a point I understand. On the other side SAP BW offers you to use a line item dimension which saves a join and result in a better performance.
    But why not give the BW developers the chance to decide if you want use it? If your InfoObject is a numeric one, you are may be much faster, saving a join and having an even easier to handle value.
    What I am interested in is, if SID technology is so deeply part of SAP BW, for example if you want to report on an DSO you also need SID's, what is the real advantage usind SID's every time for access of InfoCube or DSO data?
    See, i read for example the following advantages of BW star schema on [this site|http://learnmysap.com/sap-bw/138-classic-and-sap-bw-star-schema-comparisons.html]:
    -> Faster access to data than via long alpha-numeric keys. SAP BW use automatically generated INT4 keys for SID and Dimension ID
    ->  Can model in easy way: Historizing, multi-lingual, and shared dimensions. It is happen because of the excavation of master data from the dimension tables using the SID technique.
    ->  The query performance is improved here as aggregated key figures can be stored in their own fact tables.
    OK, first point about INT4-keys we discussed.
    I completly don't understand the second point and why therefore SID's are needed.
    Third point depends on disadvantages of the classical star schema compared to bw aggregates, a point I understand
    Often I read: The SID table provides the link between the master data and the dimension tables. (like here: /people/githen.ronney3/blog/2008/02/13/modeling-strategies)
    But why shouldn't this be possible just with the key value?
    Even SAP just describes his enhanced star schema without SID's, but technically SID's are used. Why not use it like SAP itself describes here:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/4c/89dc37c7f2d67ae10000009b38f889/content.htm
    regards,
    Peter

  • The February 2015 release of SQL Server Data Tools is now available for download

    We'd like to announce the availability of the latest February 2015 release of SQL Server Data Tools.
    This update is now available for Visual Studio 2012 and 2013. For Visual Studio 2012, use the SQL > Check for Updates tool inside Visual Studio. For Visual Studio 2013, check the Visual Studio update channel (Tools > Extensions and Updates > Updates)
    for this update.  Alternatively, administrative installs are available via the link below.
    Get it here:
    http://msdn.microsoft.com/en-us/data/hh297027
    What’s New?
    Support for the latest Azure SQL Database V12 features
    Improved Cross-Platform Schema Comparison
    New advanced publish options
    Fixes for customer reported issues
    For more details, see the SQL Server Data Tools team blog:
    http://blogs.msdn.com/b/ssdt/archive/2015/03/03/sql-server-data-tools-and-data-tier-application-framework-update-for-february-2015.aspx

    While we are investigating this issue, you can revert to the November release with the links below.  You will need to uninstall your current SSDT.MSI and then run the installer from these ISOs.
    Visual Studio 2012 versions:
    SSDT_11.1.41025.0_BR.iso
    SSDT_11.1.41025.0_CN.iso
    SSDT_11.1.41025.0_DE.iso
    SSDT_11.1.41025.0_EN.iso
    SSDT_11.1.41025.0_ES.iso
    SSDT_11.1.41025.0_FR.iso
    SSDT_11.1.41025.0_IT.iso
    SSDT_11.1.41025.0_JA.iso
    SSDT_11.1.41025.0_KO.iso
    SSDT_11.1.41025.0_RU.iso
    SSDT_11.1.41025.0_TW.iso
    Visual Studio 2013 versions:
    SSDT_12.0.41025.0_BR.iso
    SSDT_12.0.41025.0_CN.iso
    SSDT_12.0.41025.0_DE.iso
    SSDT_12.0.41025.0_EN.iso
    SSDT_12.0.41025.0_ES.iso
    SSDT_12.0.41025.0_FR.iso
    SSDT_12.0.41025.0_IT.iso
    SSDT_12.0.41025.0_JA.iso
    SSDT_12.0.41025.0_KO.iso
    SSDT_12.0.41025.0_RU.iso
    SSDT_12.0.41025.0_TW.iso

Maybe you are looking for

  • Using DateAdd and getting Null Pointer Error

    I am using the following code below: <cfoutput query="getpeople"> <cfset time2 = TimeFormat(getpeople.lunch_out_time, "hh:mm")> <!---<cfset time3 = DateAdd("h", 0, time2)> ---> <cfset time4 = DateAdd("n", 10, time2)> I have commented out the adding 0

  • BC 2 XI - Error 503: Service Unavailable

    Folks, we tried to connect BC and XI via the BC Adapter of XI. ( Scenario:  1.Step: R/3 4.7 => BC  2.Step: idoc => xml via flowservice 3.Step: BC to XI) and we got the following error message in the routing audit log of BC: com.wm.net.NetException: [

  • Clip Notes timecode issues

    When I export a portion of the timeline as a Clip Note, the PDF viewer always shows the starting frame as 00. When I import the Clip Note comments, the comments appear but always referenced to the first frame of the sequence and not to the portion of

  • Email Attachments

    Which JavaMail class allows sending attachments such as a text file?

  • Call a function by String name

    In JavaFX, how can one call a function based on it's String name? For example, if I had a sequence like ["one","two","three"] how could I call functions one(), two(), and three() by referencing the sequence? In other words, what is a better way to do