Moving data from a non Oracle database to Oracle can be a bit tricky when different character sets are at play.
For this example Ill move data from a Russian (Cyrillic_General_CI_AS) SQL Server database on windows to UTF8 (AL32UTF8) Oracle database on linux.
Topic Discussion ( Re: Bug: Cross Connection Query not working in 3.1, 3.2.1 )
https://forums.oracle.com/forums/post!reply.jspa?messageID=1065008
Small script to filter and manipulate the DBMS_OUTPUT in PL/SQL from SQL*Plus
CLEAR SCREEN;
SET LONG 1000000000 ;
SET SERVEROUTPUT ON;
VARIABLE outputclob CLOB ;
VARIABLE maxlines NUMBER;
--set the max lines
EXECUTE :maxlines :=10;
DECLARE
--array to save the output lines into
outtab dbms_output.chararr;
outstr VARCHAR2(255);
BEGIN
-- initialize the output clob
dbms_lob.createtemporary (:outputclob, TRUE);
Little script to filter & modify the DBMS_OUTPUT.
May come in useful as an example using SQL*Plus CLOB VARIABLE.
CLEAR SCREEN;
SET LONG 1000000000 ;
SET SERVEROUTPUT ON;
VARIABLE outputclob CLOB ;
VARIABLE maxlines NUMBER;
--set the max lines
EXECUTE :maxlines :=10;
DECLARE
By default, SQL Developer will migrate a Sybase, SQL Server ,... database to a brand new target user in Oracle. This new user is defined (CREATE USER ... ) at the start of the the generation script.
SQL Developer can move data online and offline.
During Oracle OpenWorld a customer asked how to turn off the autogenerate of GROUP BY clause when using JDeveloper.
Most of the time SQL Developer does a good job of migrating a database from SQL Server, Sybase ,... To Oracle. But there are some tricks to help make very large migrations perform smoother.
Empty Space strings, that is Strings with no text whats so ever '', are treated differently by different databases.
Oracle treats an empty string '' as NULL
Sybase treats an empty string '' as a single spaced string ' '
Some other database support empty strings
In the migration preferences you can decide how to handle empty strings.
You can either migrate them to
1) ' ' A single space.
or
2) NULL (which is how Oracle would interpret an empty string anyway)
There is one other thing to note.
Sybase FLOAT is generally used to save non integer numbers like fractions where no number of precision can hold the exact value. Sybase FLOATs do not store an exact value
"It stores slightly imprecise representations of real numbers as binary fractions at the hardware level"
http://www.sybase.com/detail?id=20313
Oracle has two data types, FLOAT and BINARY_FLOAT.
http://stackoverflow.com/questions/332492/oracle-floats-vs-number