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.
ThanksWhat 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
DevThe 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,
xtantoWhat 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 arroundthanks 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. -
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 PMI 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 advanceOK, 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 -
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,
PeterHello 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.aspxWhile 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: [
-
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
-
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