Replication From Oracle 10g R2 To SQL Server 2005 SP2
Oct 6, 2007
Hello All,
I created all the role and logins as described in oracleadmin.sql file and were able to query Oracle tables.
But when I try to crate publisher on Oracle server from sqL server I get the following error:
-------------------------------------------------------------------------------------------------------------------------------
TITLE: Distributor Properties
------------------------------
An error occurred applying the changes to the Distributor.
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server+Management+Studio&ProdVer=9.00.3186.00&EvtSrc=Microsoft.SqlServer.Management.UI.DistributorPropertiesErrorSR&EvtID=ErrorApplyingDistributor&LinkId=20476
SQL Server could not enable 'oracle_dev' as a Publisher. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Failed to execute the HREPL.INITPUBLISHER request to Oracle Publisher 'ORACLE_DEV'. Verify that the Oracle package code exists on the Publisher, and that the replication administrative user account has sufficient permissions.
Changed database context to 'master'.
OLE DB provider "MSDAORA" for linked server "ORACLE_DEV" returned message "One or more errors occurred during processing of command.".
OLE DB provider "MSDAORA" for linked server "ORACLE_DEV" returned message "ORA-06550: line 1, column 8:
PLS-00201: identifier 'HREPL.INITPUBLISHER' must be declared
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
".
Error: 7215, Sev: 17, State: 1, Msg: Could not execute statement on remote server 'ORACLE_DEV'. (Microsoft SQL Server, Error: 21651)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.3186&EvtSrc=MSSQLServer&EvtID=21651&LinkId=20476
--------------------------------------------------------------------------------------------------------------------------------------------------------
I searched the web and could not find any related info, where is this package can I run it manually?
Any help appreciated.
I'm a consultant, and have been brought into the middle of a replication project. The client is looking to replicate the database from Oracle to SQL 2005. I had the replication working last week, but then problems (I don't know the cause, wasn't on site). But I tried reinitializing the subscription, and the SQL Log Reader Agent status simply sticks at status=Initializing for about 5 minutes.After 5 minutes, it comes up with the message:Batch processing is in progress. The current batch consists of 205065 commands and 0 transactions. The last transaction was 0x0000000000000000000c, '0x0000000000000000000c'.And the commands continue to increase at the rate of a couple thousand a minute. The distribution Agent isn't running, and I haven't created a snapshot. I do believe there were problems with disk space on both the Oracle and the SQL Server, but those have been taken care of. And the target database is only used for OLAP (at this point). I've run the Dist Cleanup Job, removed the Subscription and rebuilt it. To no avail. Unfortunately, I don't have a great access on the Oracle side of it. Thoughts? Bob
I have one Oracle Server (Version 10g) with some simple tables which should be replicated to an SQL 2005 Enterprise Server.
i got this error:
Error messages: The process could not bulk copy into table '"dbo"."S_AGRZ"'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20037) Get help: http://help/MSSQL_REPL20037 Batch send failed Violation of PRIMARY KEY constraint 'MSHREPL_38_PK'. Cannot insert duplicate key in object 'dbo.S_AGRZ'. (Source: MSSQLServer, Error number: 2627) Get help: http://help/2627 To obtain an error file with details on the errors encountered when initializing the subscribing table, execute the bcp command that appears below. Consult the BOL for more information on the bcp utility and its supported options. (Source: MSSQLServer, Error number: 20253) Get help: http://help/20253 bcp "RS"."dbo"."S_AGRZ" in "F:Microsoft SQL ServerMSSQL.2MSSQLReplDatauncACPRS2_DISTRIBUTION_S_AGRZ20070518023422S_AGRZ_2.bcp" -e "errorfile" -t"<x$3>" -r"<,@g>" -m10000 -SSVIESQL04RS2 -T -w (Source: MSSQLServer, Error number: 20253)
i set the publisher to drop the table and create a new one when i reinitialize with a new snapshot. it only works when i remove the unique key constraint. but after that the data in the replicated table has wrong entries. a select count ... will show the exacly same number as an select count ... on the original table direktly on the oracle server. i reinitialzied the replication multiple times with new snapshots. but the problem does not resolve. first i got a unique key constraint. then i typed truncate table ..., after that i removed the the unique constraint and than all data will be imported but there are some entries that are not existing in oracle.
my server is patched with the newest updates for sql 2005 (Version 9.0.3159).
for exempla the following statement will show the same results on oracle and sql 2005:
Oracle: SELECT COUNT(*) FROM S_AGRZ Result: 471.066
MS-SQL: SELECT COUNT(*) FROM S_AGRZ Result: 471.066
but, for example this will show differences:
Oracle: SELECT * FROM S_AGRZ WHERE art_nr='C7972A' Result:
I'm in a middle of a project where replication established between Oracle 8i and SQL server 2005. Now we need to drop one column from on of the tables replicated from Oracle side. My question : Is there anyway I can do this in Oracle and automatically reflected on SQL server? If not what is the proper steps to do it. Realy appreciate your fast response.
I'd appreciate any help i can get here. I'm working with an MS SQL Server 2005 SP2 db on a Windows 2003 OS. I set up replication from an Oracle 10g instance a few months ago, and everything was working until i installed SP2 for SQL Server.
2007-06-06 16:06:22.488 The agent is running. Use Replication Monitor to view the details of this agent session.
2007-06-06 16:06:23.082 Status: 0, code: 1008, text: 'ORA-01008: not all variables bound '.
2007-06-06 16:06:23.082 ORA-01008: not all variables bound
2007-06-06 16:06:23.082 Status: 0, code: 22037, text: 'Heterogeneous Logreader encountered an error in call to LoadReplCmds when processing state 'PROCESSSYNCDONE'.'.
I can get snapshot replication to work just fine, but transactional replication throws up the error above.
Although clearly specified in the replication notes for SQL server 2005. I am wondering whether I still have some options for replication using the Standard Edition of SQL 2005. I see that subscriptions and publications are still a part of the menu. Am I still able to set up an oracle 8< database as a publisher which SQL can subscribe to???
My experience so far...I can access Local Subscriptions from the replications menu. There I can attempt to find a publisher, an oracle publisher is given as an option. The message I get is as follows: "To find an Oracle Publisher, you must first connect to the SQL Server Distributor that has been configured to work with that Publisher. In the following dialog box, specify the name and login for the Distributor."
I've got a table adapter that connects using an oracle data connector. In the adapter, I'm using native oracle SQL such as:
select TO_DATE(SUBSTR(TO_CHAR(weird_oracle_field),0,12),'YYYYMMDDHH24MI') as dt_added from oracle_data_table
There's also a CASE statement in there with some other data transformations.
Anyway, I want to take the results of that Oracle query and put the dataset into a SQL Server Compact Edition database - within an application that I'm creating in Visual Studio 2005.
For whatever reason, I can't seem to do anything like that in 'bulk' and there aren't any data migration tools that work with anything other than "full" SQL Server versions. My client doesn't support SQL Server, but I can deploy my app with SQL CE. I need a 'local' copy of the database (for several reasons) and just can't seem to figure out how to make this work.
I'm really going nuts. I feel like I'm soooo close when I see the data I want in the table adapter - but I can't seem to actually *move* the data over!!
I have more than 8 GB Data in oracle and Everyday we have to check some data in oracle but it takes times due to lot of data. So what i was looking that data that we need can import in SQL Server database and do checking purpose. But I was looking some command that connect to oracle brings its data and import in SQL Server. For that we will fire SQL statement to oracle through asp.net and insert into SQL Server I will fire differencial data insert covery only. is there any way or idea to do that please advice me.
Anyone know where I can find some good resources to help us choose betweenSQL and Oracle ( Progress Openedge as well ) . Any comments on what youwould choose ?? We are creating a new Warehouse Management System which wilmanage our very large inventory.Anyway comments suggestions welcomeThanksPaul
I am trying to import an Oracle .dmp database into SQL Server 2005, what would you suggest as the fastest and easiest way to do this? DTS/SSIS doesn't have an instant solution and the script I tried to use gave me an error...
Msg 3241, Level 16, State 0, Line 1
The media family on device '<DATABASE>' is incorrectly formed. SQL Server cannot process this media family.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
I would like a GUI based way to do this if at all possible. Thanks -Kyle
I'm relatively new to DTS and I was trying to import data from the oracle database to SQL server database based on some parameter from the destination table. i.e select * from SourceTable where SourceTable.Column1 > (select max(Column1) from DestinationTable) This tries to search DestinationTable from the source database(Oracle) How shoud I go to solve this problem? Any Hint is greatly appreciated....
OK new Windows 2003 Enterprise 64-bit with MS SQL Server 2005 64-bit.. Now I am migrating the DTS packages from our olld Windows 2000 Standard with MS SQL 2000 (all 32-bit). I am not moving the packages to SSIS yet just want to move the legacy DTS jobs over... However whenever I try and connect to the Oracle DB I got ORA-12154: TNS:could not resolve the connect identifier specified.
I have the Oracle 10g 32-bit & Oracle 10g 64-bit clients installed and I can run SQL+Plus and do everything just fine. It is just in MS SQL 2005 I can not. Even in SSIS I get the ORA-12154 error. I can create an ODBC and test it and it works just fine... Has anyone here ever fixed this? Some say it is b/c of the ('s around x86 in program files and I have done their suggestion in making a ProgramFilesx86 directory and copy the visual stupid & sql directories there... still nothing. I have one of my DBA's searching Oracle for any patches but thought I would ask and see.
Does anyone have some more detailed information about how Oracle and MSimplement / allow Tuning on Oracle 10g and SQL Server 2005 and thedifferences between them?Which of them, In a deep comparison about it, allow better tuning andwhy.Regards,Marcio Evangelista
In oracle i use the following sentence TO_CHAR(Table1.DateIn, ,'mm/yyyy') within a query. I need how to replace this for using it in SQL Server. I tried to use the SQL Server CONVERT function but nothing work. Could you help me?
I am migrating a database from Oracle to SQL Server 2005. I have a problem when migrating code from PL-SQL (oracle labguage) to T-SQL (sql server language). My problem is: there is pseudo-column in oracle called level that return the level from a register in a tree view of a select (a parent-child relationship). I would want to know how to translate that level column to T-SQL. Thanks!
Hi guyz, I have basic knowledge of Sql Server 2005 and now i wanna move ahead in Oracle 9i ! So, i have 2 questions here -
a)Whats the Difference between Sql Server 2005 and Oracle 9 i ?
Note: Please keep the discussion general so that student like me can understand. I have never seen Oracle but the industry requirements suggest that Oracle is way better than than SQL Server 2005. But thats what i think
b)I am Running Windows XP SP 2 and i would like to practise Oracle 9i. So, Where i can download it for free ? I know i have checked there website but they don't mention the difference between each version. Oracle does't market their products as well as Microsoft.
Please , I am Student .. so i request you to make the discussion general . Thank you for your time.
I was a Oracle Developer / DBA on Unix Environments all along my career, Very recently iam starting to manage a SQL Server 2005/Windows 2003 Server setup.
Part of my new job is to automate to load Huge Data files/Flat Files (3/4 GB in size) into SQL Server 2005 DB.
Have these initial questions.. Since the files are too large to open at once... What sort of Command Line Interfaces people use on the Windows Boxes.. like doing a "wc" (Word Count) / GREP 'ng Files / Massaging Data Files one line at a time (Like using SED / AWK Commands).. Etc
I am using Windows 2003 server and Sqlserver 2005 by the use of Linked server , I made a connection to Oracle 10g after that I am importing records from Oracle to sqlserver 2005. When I made tnsnames.ora in sql machine , it worked fine but when i am using tnsnames file from oracle server then i fiired importing procedure it returns below maintain error :
OLE DB provider "MSDAORA" for linked server "BI_ORACLE_LS" returned message "Unspecified error".
OLE DB provider "MSDAORA" for linked server "BI_ORACLE_LS" returned message "Oracle error occurred, but error message could not be retrieved from Oracle.".
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES" for OLE DB provider "MSDAORA" for linked server "BI_ORACLE_LS". The provider supports the interface, but returns a failure code when it is used.
I have created the table test with the same structure and the same data in SQL Server 2005. To show the subnodes of the root node 2461, the following SQL Statement is used:
WITH CTE_TEST(PARFOLDERNO,FOLDERNO) AS ( SELECT PARFOLDERNO,FOLDERNO FROM TEST WHERE FOLDERNO=2461 UNION ALL
SELECT TEST.PARFOLDERNO,TEST.FOLDERNO FROM TEST, CTE_TEST WHERE TEST.PARFOLDERNO=CTE_TEST.FOLDERNO )
hi guys, I am joining IT industry in august,my main intrest is in database(readed some stuff of warehousing oracle 9i and sql). However to move my career in that direction i need certification. So here is the point,should i get MCTS(in sql server 2005) or OCP(oracle associate 10g). My main goal is to become DBA. which of the above is more benificial. I mean more oppurtunites.
hi,1. is there a statement in ms sql, what creates a sequence? cant findanything in web :-(-oracle: CREATE SEQUENCE XYZ INCREMENT BY 1 START WITH 1 NOCYCLECACHE 20;-ms sql: ???2. hwo do i create a link to another ms-sql databasethx a lot need help, urgend :-)
HI, I need some help regarding the data access. I needs to access some data from tables which are in oracle and load it into sql server tables. Please let me know the process for this.
For a high-performance and time/mission-critical application in the Telecom industry we have a project where uber-low latency is crucial. Oracle has acquired TimesTen in 2005 and I was wondering if there are performance comparisons between SQL Server 2005/2008, Oracle and other DBMS vendors?
I would also like to know from you guys what your experiences are with using SQL Server for time-critical applications.
What can we do to get the maximum out of SQL Server 2005/2008 if the hardware it will run on is not an issue. For example a 16-core machine ...
I am receiving the following error message when trying to create a new Oracle Publisher.
Msg 21684, Level 16, State 1, Procedure sp_ORACheckAdminPrivileges, Line 136
The permissions associated with the administrator login for Oracle publisher 'NT02' are not sufficient.
We have added the following permissions manually (not through a role) in Oracle:
CREATE PUBLIC SYNONYM and DROP PUBLIC SYNONYM CREATE PROCEDURE CREATE SEQUENCE CREATE SESSION CREATE ANY TRIGGER. CREATE TABLE CREATE VIEW
And we have also tried the Program FilesMicrosoft SQL Server<InstanceName>MSSQLInstalloracleadmin.sql script.
In both cases we are receiving the error message above. The only way we seem to be able to get around the error is to grant the DBA role to the replication schema user, which doesn't seem right.
Has anybody run into this problem before? How did you get around the problem?
Also is there a way to view sp_ORACheckAdminPrivileges because it's doesn't seem to be viewable anywhere in the database? This would at least let us know what it's looking for from an Oracle standpoint.
I am racking my brain on this one. I am migrating Oracle data to SQL Server and would like an SSIS package that will copy the oracle data from every table to SQL server. I already have the schema set up in SQL and a straight copy of a specified table works fine between the OLEDB source and OLEDB destination. However, when I set up a loop which sets a global variable for the table names, which are identical on both dbs, and try to set the OLEDB Source and Destination OpenRowsetVariable to the global variable, the process fails with these errors with all validation turned off:
[OLE DB Source [18]] Warning: Cannot retrieve the column code page info from the OLE DB provider. If the component supports the "DefaultCodePage" property, the code page from that property will be used. Change the value of the property if the current string code page values are incorrect. If the component does not support the property, the code page from the component's locale ID will be used.
[OLE DB Source [18]] Error: Column "ID" cannot be found at the datasource.
[DTS.Pipeline] Error: component "OLE DB Source" (18) failed the pre-execute phase and returned error code 0xC0202005.
To sum up, I want to set the tables dynamically and have them infer the mappings. The names of the columns are already the exact same on each schema, and the data types are mapped accordingly. I have already verified that the names of the tables have been formatted correctly for each database. If I can't do it this way then how?