Best approach to synchronize data between two oracle database remotely
Hi All,
We have requirement to synchronize data between custom application database and EBS database. Thw two database is on different location connected by 128 kbps connection.
The synchronization will do the following task :
- Download customer table from EBS (I have checked there are only 2000 rows of it)
- Up load billing data to EBS auto invoice interface table
The question is :
What approach is the best way to do this synchronization task ? some that come into my mind :
- create database link and run stored procedure to do the batch update ?
- for Customer synchronization, is it a good idea to create Materialized view so that any update to EBS customer data will be updated, refreshed nightly
- or is ther any better approach ?
Thank you very much,
xtanto
Edited by: xtanto on Oct 18, 2008 3:30 PM
Maybe try Streams?
Similar Messages
-
Best approach to synchronize data from custom application database to EBS
Hi All,
We have requirement to synchronize data between custom application database and EBS database. Thw two database is on different location connected by 128 kbps connection.
The synchronization will do the following task :
- Download customer table from EBS (I have checked there are only 2000 rows of it)
- Up load billing data to EBS auto invoice interface table
The question is :
What approach is the best way to do this synchronization task ? some that come into my mind :
- create database link and run stored procedure to do the batch update ?
- for Customer synchronization, is it a good idea to create Materialized view so that any update to EBS customer data will be updated, refreshed nightly
- or is ther any better approach ?
Thank you very much,
xtantoHi,
There are two direction of synchroonization that should be done :
- RECEIVE Customers data from EBS into Custom Billing Database -> Yes, this can be done via materialized view
- SEND Billing data from Custom Billing Database into EBS database (Interface table)-> this cannot be done with materialized view
--> so how is the best way to do this under limited bandwidth (128 kbps) ?
Thank you very much,
xtanto
Edited by: xtanto on Oct 19, 2008 1:52 PM -
Intervals, synchronize the data between two oracle tables located in diffe
Hi Experts,
Is there any way I can, at set intervals, synchronize the data between two oracle tables located in different servers? What is the software, if there is any? If there are steps I can follow, so much the better.
Thanks!I'm not sure what you want to achieve here...
I want to synchronize both the Servers , so that it can update HO servers as well as Factory Server with the complete data. Could you please elaborate a little bit more; basing on your description I could also tell you how to setup timesync for those two servers if I understand "complete data" as the current date and time...
Also a lot of solutions are platform and version specific so it would help if you could indicate OS and Database Versions (4 digit).
And I still fail to see what this has to do with forms. You might want to post your question to the Database General forum: General Database Discussions
cheers -
Best approach to transfer and transform data between two Oracle Instances
Let me first preface this post with the fact that I am an Oracle newb.
The current problem I am trying to solve is how to quickly transfer data from a customers legacy database into a new normalized destination that is modeled differently than the legacy data. So, the data not only has to be transferred, but also transformed (into normalized tables)
We have discovered, the hard way, that reading the data using a C++ application and performing inserts (even with indexing and constraints disabled) is just way too slow for what we need. We are dealing with around 20 million records here. I need to determine what the best approach extracting this data out of the source and inserting it into the destination. Any comments or tips are greatly appreciated.
Note: I have read about SQL*Loader and mentioned it to management, but they seem resistant to this approach. It's not totally out of the question though.Oracle has a lot of technologies that fall under the general heading of "replication" to choose from. Going from a database to a flat file and back to another database is generally not the most efficient solution-- it's generally much easier to go straight from one database to another.
Oracle provides materialized views, Streams, and Change Data Capture (CDC)-- any of these would be able to give your new system incremental feeds of data from the old system's data and could be used by whatever routines you write to transform the data between data models.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
Synchronize data between two offices
Hi everyone,
After building a database for our growing company, we have a problem with our data and its synchronization. Our company has a rather small, but growing, book warehouse and sells books online. We have been able to deal with orders and stock because sales were not that large.
But today we sell more and more books and the addition of a database means we need to synchronize our data from the warehouse database to the main office one, mainly to be able to know what kind of stock we have. I think we will have to go with a batch syncing scheduled twice a day for now. We have been dealing with Talend open studio so far and enjoy the product.
Do you think Talend will be able to stand that type of operation? What kind of software could be used in this case?
Thanks all!So basically what you want to do is sync up two databases several times a day. You could use Talend Open Studio: it can efficiently do what you are asking, so stay with this tool.
You might want to go check Talend 's page on data synchronization: http://www.talend.com/solutions-data-integration/data-synchronization.php
Just the fact you already know the software and use it, you'll save a lot of time (and money) on this. it is much easier for you than taking a new one. -
Integration between two oracle servers 8i and 9i
With the name of ALLAH,
Dear Friends,
I want to connect / share the data of two oracle databases installed on different LANs and static IPs. i.e
202.125.155.20 and 202.125.152.30
But the problem is that I am unable to connect both databases by connection string in tnsnames.ora
I want to share the data by writting event based trigger between both of the databases.
Note: One database is 8i Enterprise and other is 9i Enterprise
Please tell me in detail that what should I do?
I would be thankful to you.
Faisal,
[email protected],
9203335146832hi Faisal Rafique
i have working in same situation.
u will make 2 entries in tnsname for 2 server.
like
oracle8I =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 202.125.155.20 )(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = oracle8i)--enter u r service name of 8i
another entries for 9i database
oracle9I =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 202.125.155.30 )(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = oracle9i)--enter u r service name of 9i
thanks
kuljeet pal singh -
Synchronize date between OUD and AD
Hi all.
I want to synchronize date between OUD(Oracle Unified Directory) and AD (Windows Active Directory).
OIM(OID ODIP)?
This framework is very powerful, but it seems to be a liitle heavy for me.
Is there any solution more light and straight to reach the goal?
I would appreciate for any reply.Hi,
You don't need OID as you can use OUD as DIP configuration store.
The procedure is described in detail in KM note 1511847.1 available from support.oracle.com
The note 1511883.1 can be useful as well as it is a placeholder for DIP/OUD related procedures.
-Sylvain -
Reg: How to automate updation of tables between two oracle DB Instances
Hi All,
I have a requirement to auto update the tables between two oracle database instances. What are the possible solutions to handle this kind of situations.
Please help me out in identifying the correct solution.
Thanks in advance :)The possible solutions are outlined in the distributed database documentation
They are
a) trigger (6.0 and higher)
b) advanced replication. Creates triggers on every table. Requires every table to have a primary key (8.0 and higher)
c) Streams (Uses logminer, has no impact on table. Requires every table to have a primary key, or supplemental logging will be used. (9.0 and higher)
d) Change Data Capture: superset of Streams (9i and higher).
If you don't require realtime updates you don't need c or d. b is difficult to manage. Using a) the source db can potentially have to wait for the target db to complete it's transaction.
Sybrand Bakker
Senior Oracle DBA -
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 -
How can I share data between two forms on different lists
Using a custom content type, I created two lists that I want to share the same data - one is a calendar. Our employees complete a form from the "Out of Office Request" list that has workflow functionality that sends an email to that person's
manager. If the manager approves the request, the item automatically populates the "Out of Office Calendar." The problem is that the only information from the request list that populates the calendar is the Title field and date/time fields.
I need the manager name in order to create a view for each manager.
How can I connect the other information in the request list to the calendar list. It seems to me that if the title and date fields carry over the information, there should be a way to connect the other information. I'm using Designer.
I've tried to connect the two lists' webparts with the wizard, but when I get to the page that maps the two lists, there are no column names and the "Next >" button is grayed out. This seems like the logical place to connect the two lists,
but it isn't working.Hi,
According to your post, my understanding is that you wanted share data between two forms on different lists.
To show external information on the calendar event, there are two methods: Calculated column, workflow. You can refer to:
A Simple Guide to Show More Information on a Calendar Event
I recommend to use workflow to achieve what you want. But you need to create a people column to display the manager.
You can create a workflow associated to the "Out of Office Request" list, add action to Start Approve Process. If the manager approves the request, you can create a item in the calendar, and then update the people column and the title column.
Then the calendar will display the Title, date/time and the manager.
To create a view for each manager, you need to modify the Filter. You can use the people column is equal to the manager name or the Title contains the manager name.
Thank you for your understanding.
Best Regards,
Linda Li
Linda Li
TechNet Community Support -
Different ways to copy data between two schemas in one instance
Hi there,
I am searching a good way to copy data between two schemas in the same instance.
Both schemas have an identical structure such as triggers, tables, views and so on. The only difference is the purpose: one is the productivity system and one is for development.
I looked at datapump but I do not explicit want to export / import. I want to keep the data in the productivity schema as well as copy it to the other schema. Any ideas? I found out there is a copy statement but I dont't know how that works.
Thank you so far,
JörnThank you for your replies!
I also thought of creating a second instance for development and move the dev - schema to it. I just don't know whether our server can handle both (performance?). Anyway the idea is to have a possibility to quickly rebuild the data inside a schema without indixes or triggers, just pure data. I thought the easiest way would be to copy the data between the schemas as they are exactly the same. However if you tell me DataPunp is the best solution i won't deny using it :).
When you export data a file is created. does that also mean that the exported data is deleted inside the schema?
best regards
Jörn
Ps: Guido, you are following me, aren' t you? ;-) -
Best method for passing data between nested components
I have a fairly good sized Flex application (if it was
stuffed all into one file--which it used to be--it would be about
3-4k lines of code). I have since started breaking it up into
components and abstracting logic to make it easier to write,
manage, and develop.
The biggest thing that I'm running into is figuring out a way
to pass data between components. Now, I know how to write and use
custom events, so that you dispatch events up the chain of
components, but it seems like that only works one way (bottom-up).
I also know how to make public variables/functions inside the
component and then the caller can just assign that variable or call
that function.
Let's say that I have the following chain of components:
Component A
--Component B
-- -- Component C
-- -- -- Component D
What is the best way to pass data between A and D (in both
directions)?
If I use an event to pass from D to A, it seems as though I
have to write event code in each of the components and do the
bubbling up manually. What I'm really stuck on though, is how to
get data from A to D.
I have a remote object in Component A that goes out and gets
some data from the server, and most all of the other components all
rely on whatever was returned -- so what is the best way to be able
to "share" data between all components? I don't want to have to
pass a variable through B and C just so that D can get it, but I
also don't want to make D go and request the information itself. B
and C might not need the data, so it seems stupid to have to make
it be aware of it.
Any ideas? I hope that my explanation is clear enough...
Thanks.
-JakePeter (or anyone else)...
To take this example to the next (albeit parallel) level, how
would you go about creating a class that will let you just
capture/dispatch local data changes? Following along my original
example (Components A-D),let's say that we have this component
architecture:
Component A
--Component B
-- -- Component C
-- -- -- Component D
-- -- Component E
-- -- Comonnent F
How would we go about creating a dispatch scheme for getting
data between Component C and E/F? Maybe in Component C the user
picks a username from a combo box. That selection will drive some
changes in Component E (like triggering a new screen to appear
based on the user). There are no remote methods at play with this
example, just a simple update of a username that's all contained
within the Flex app.
I tried mimicking the technique that we used for the
RemoteObject methods, but things are a bit different this time
around because we're not making a trip to the server. I just want
to be able to register Component E to listen for an event that
would indicate that some data has changed.
Now, once again, I know that I can bubble that information up
to A and then back down to E, but that's sloppy... There has to be
a similar approach to broadcasting events across the entire
application, right?
Here's what I started to come up with so far:
[Event(name="selectUsername", type="CustomEvent")]
public class LocalData extends EventDispatcher
private static var _self:LocalData;
// Constructor
public function LocalData() {
// ?? does anything go here ??
// Returns the singleton instance of this class.
public static function getInstance():LocalData {
if( _self == null ) {
_self = new LocalData();
return _self;
// public method that can be called to dispatch the event.
public static function selectUsername(userObj:Object):void {
dispatchEvent(new CustomEvent(userObj, "selectUsername"));
Then, in the component that wants to dispatch the event, we
do this:
LocalData.selectUsername([some object]);
And in the component that wants to listen for the event:
LocalData.getInstance().addEventListener("selectUsername",
selectUsername_Result);
public function selectUsername_Result(e:CustomEvent):void {
// handle results here
The problem with this is that when I go to compile it, it
doesn't like my use of "dispatchEvent" inside that public static
method. Tells me, "Call to possibly undefined method
"dispatchEvent". Huh? Why would it be undefined?
Does it make sense with where I'm going?
Any help is greatly appreciated.
Thanks!
-Jacob -
Two Application in One EVDRE - check data between two application.
Dear Sap Expert,
We want to check data between two applications.
For example, we have in C_ACCT= 100000000 Amount 5000 in Legal Application, we want to check what amount is in that C_ACCT in ICMatching application.
Problem is that we can't get data from two application with one EVDRE.
If we will make it using two EVDRE, problem when we retrieve data, rows doesn't match.
Our question : is it possible to link to two applilcation using one EVDRE? (Just like dimension? For example for first column it will be Legal, for the next ICMatching.)
If no, how we can solve our needs?
Legal |ICMatching | Difference
C_ACCT 5000 | 2000 | 3000
For example
(100000000)Thanks for answer.
Does it mean that for example if i just want to check C_ACCT=100000000 between two application(Legal and ICMatching) i should build TWO EVDRE, and i can't solve this problem by one EVDRE. (Or with two EVGET)
Our aim that we need to check all BASMEMBERS data between two application, it's huge data, so we want supress all zero data(SUPRESS="Y").
So if we build first evdre for LEGAL, for example it will have, 500 rows.
Second evdre for ICmatching, for example, will have 953 rows.
How we can check data and show difference between them?
Best solution for us, if in one evdre we can retrieve data from two application, so rows will match and we also can supress data.
Thanks,
Kadraliyev Yerlan -
Transfer large data between two databases via ODI
Hi, we want to transfer our 2 billion records (70gb) A database oracle server to B database oracle server via ODI LKM SQL to Oracle (SQLLDR).We use a filter like "prod_enter_date>sysdate-1" for daily records(about 200.000).It takes about 1 our.How can we transfer data faster, thanks for your advice.
OK so assuming the Oracle DB's can see each on the network other have a word with your DBA's about creating a DBLink and test out the LKM DB Link KM.
Also try Uli's amended LKM if dont want to be too intrusive on your souce system creating synonyms etc. : http://sonra.io/tag/lkm-db-links/
I have used both and they work fine.
Basically you are currently unloading a large amount of data, transfering to another location and then uploading that data with no transformation to the target environment, a DBLink LKM will transfer this data without the need to unload / upload , just the network transfer.
Another thread here : https://forums.oracle.com/message/9630782
To re-quote the that thread quoting the documentaion for that LKM : "As it says in the component description - "This module is recommended when developing interfaces between two Oracle servers." -
The way to synchronize data between different locations
Hi all,
Pls to guide for me the way to synchronize data between difference locations with SQL server 2000, SBO 2005A. Thanks !!!Hi Andy,
As Ibai already replied in the SAP Business One Forum there are several options.
If you want to use "SAP Business One Integration..." you may have to do quite some work to connect two SAP Business One systems ASFAIK.
This hasn't been in focus for the first release of this integration platform (which is currently in Ramp-Up), but Integration to SAP R/3 / mySAP...
Maybe some colleague - or partner developer who eventually already worked on that knows better?
Regards,
Frank
Maybe you are looking for
-
Macbook Pro mid-2012 Slow, and laggy
My Macbook has been running slow, and laggy aswell. I don't know whats wrong with it. I took my Macbook to the store where I bought it to see if they could fix it. After 4 days in the warehouse I came to take it back, and they said that we didn't fin
-
How can i change my App Store : us to french? Modified by error...
How can i change my App Store : us to french? Modified by error... My original store has been changed while downlaoding apps. I can't update m'y apps bécasse i'm not on the well store. How CAN i find original store. Thanks.
-
VM NIC keeps changing from Dynamic to Static IP (from a static IP pool)
Back ground: Having migrated our VM's from 2008R2 and 2012SP1 servers into one 4 node 2012R2 Hyper V Cluster we have a problem with NIC's being changed to Static IP, this in turn gives a range of warning and errors when moving VM's between the nodes
-
The Send by email button ..
Hi, I on any PDF form the 'send by email' (small envelope on the tool bar) does not work. I recently went from Windows XP to Windows Vista. Is there a setting I need to change? Any help? Frank Cunningham
-
Sun Cluster + meta set shared disks -
Guys, I am looking for some instructions that most sun administrators would mostly know i believe. I am trying to create some cluster resource groups and resources etc., but before that i am creating the file systems that is going to be used by two n