COPY FROM database TO database action - destination_table (column_name, column_name...) USING query
Men er der så nogen der ved hvor meget "creme" det tager? Skal kopiere fra PROD til TEST miljö.
Synes godt om
Slettet bruger
23. maj 2007 - 16:45#2
Den kopiering du taler om foregår i SQL*Plus: Data hentes fra server og overføres til testmiljø via den maskine, som du kører SQL*Plus fra.
Hvis du vil have en direkte kopiering fra produktionsserver til testserver, skal du definere produktionsserver i testservers tnsnames-fil. Derefter kan du oprette et databaselink på testserver og overføre data fra server til server:
INSERT INTO TEST_TABEL SELECT * FROM PROD_TABEL@DBLINKNAME;
Hvis der er tale om mange data, er det altid mere enkelt at lave en dump-fil med exp og importere den med imp. Eventuelt med datapump.
sidste mulighede: SQL*Loader. Men den kræver at du trækker data ud på en rimelig pæn måde Hvis du ikke har mere end et par millioner rækker, er database-links det enkleste.
Den fungerer fint når jeg creater en ny tabel. Men det kan jeg ikke rigtigt bruge, da jeg skal have ændret en kolonne fra number(38,2) til number(38,4)
Synes godt om
Slettet bruger
24. maj 2007 - 08:44#7
hej Michael
Jeg bliver lige nødt til at checke op på COPY-syntaksen inden jeg kan svare. Måske kan andre?
Men med hensyn til at ændre en kolonne:
ALTER TABLENAME MODIFY (kolonnenavn number(38,4)) /
Det kan være fordi du bruger nye datatyper, der er kommet efter Oracle8i?
"The COPY command is not being enhanced to handle datatypes or features introduced with, or after Oracle8i. The COPY command is likely to be made obsolete in a future release."
Hvis du har 16 millioner rækker er det nemmere at lave en eksport, flytte den komprimerede fil over på modtagerdatabase og lave en import.
Men det skal creates fysisk på serveren hva? Kan få det til at fungere når jeg laver et link lokalt til prod. Men ikke fra test til prod, så klager den over tns og service name.
Synes godt om
Slettet bruger
24. maj 2007 - 11:54#12
det lyder mærkeligt. kan test i det hele taget se produktion? Hvad er det helt præcist, den skriver til dig?
der var orde! datatypen long er anderledes. Du slipper nemmest om ved det, hvis du laver en export/import
Synes godt om
Slettet bruger
24. maj 2007 - 13:37#20
med mindre du med 'long' taler om number(38,4) og ikke oracle datatypen LONG?
Synes godt om
Slettet bruger
24. maj 2007 - 13:41#21
Nu fandt jeg ud af at læse. Du skal bruge en procedure long2varchar. Og den skal bruges på prodserver-siden. Lav et view over dine data med anvendelse af konverteringen på prodserver-siden. Derefter kan du hente data fra view vha. database link
OK, på prod: CREATE OR REPLACE FORCE VIEW schema.long2varchar (felt1,osv) AS SELECT felt1, dbms_metadata_util.long2varchar(4000, 'KSD_LINE', 'REMARKS',72) AS REMARKS, felt700 FROM tabel;
Er det sådan du mener, altså konverteringen INDE i viewet.
ideen er at oprette et felt mere, og konvertere data ind.
det nemmeste er som sagt at lave en export. hvis du har oracle klient på din maskine, kan du finde exp og imp installeret :-)
Synes godt om
Slettet bruger
24. maj 2007 - 15:40#28
ellers kunne du måske konverter feltet til en clob på begge maskiner? men man skal nok lige læse sig til, om man kan inserte til clobs med almindelig syntaks
Men så tager den vel tabelstrukturen med? Og så er jeg lige vidt med konverteringen fra number(38,2) til number(38,4). Det var grunden til at jeg tømte tabellen fra starten. Skal lige siges at jeg var så dum at IKKE checke størrelsen på den inden :(
PS. du skal have 16 mill tak for hjælpen så længe.
Synes godt om
Slettet bruger
24. maj 2007 - 18:39#34
en imp kan godt foregå til nogenlunde kompatible rækker. der skulle ikke være noget problem med et number felt der er blevet til et number 38,4-felt.
Jeg tror import vil tage nogen tid. Men det er jo altid svært at sige. Husk at fjerne evt. indeks på target-tabellen først. Dem kan du bygge bagefter.
det er nok hurtigst, hvis du foretager export på prodserver, komprimerer den, kopierer den over på testserver, dekomprimerer og importerer.
PS: jeg synes det var godt du oprettede et spørgsmål mere. det er godt at se holdam komme på banen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.