Unloading LONG en LONG RAW Datatypes - Oracle 10g

LONG en LONG RAW columns kunnen uitgeladen worden door de oracle_datapump access driver, echter deze data kan alleen weer teruggeladen worden in de database als een LOB datatype.

Het volgende voorbeeld laat zien hoe je LONG en LONG RAW datatypes kan uitladen.

Voor alle LONG of LONG RAW columns in de tabel die uitgeladen moet worden, definieer je de overeenkomstige columns in de external tabel als CLOB voor LONG columns of BLOB voor LONG RAW columns.

Eerst maken we een test tabel met een long:

SQL> CREATE TABLE mike_tab
(
mike_no SMALLINT,
description LONG
);
 Table created.

Doe een insert in de tabel:

SQL> INSERT INTO mike_tab VALUES (1 , 'project voor DBAsupport');
1 row created.

Om deze data uit te laden met datapump, dan zal je een external table moeten creeeren met een CLOB column om de data van de LONG column in te stoppen. Als je de external table gaat laden, moet je de to_lob operator gebruiken om de LONG column in een CLOB te kunnen laden.

SQL>CREATE TABLE mike_tab_ext
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY dpump_dir
LOCATION ('mike_tab_ext.dmp')
)
AS SELECT mike_no, TO_LOB(description) description FROM mike_tab;
Table created.


De uitgeladen data in de external table kan nu gebruikt worden om een vergelijkbare tabel te maken als waarvan de data was uitgeladen met de voorwaarde dat de nieuwe tabel in plaats van een LONG een CLOB column zal bevatten.

SQL>CREATE TABLE mike_lob_tab
AS SELECT * from mike_tab_ext;
Table created.

Na een operatie zoals deze moet je altijd even checken of de tabel op de juiste manier is aangemaakt:

SQL>SELECT * FROM mike_lob_tab;

MIKE_NO DESCRIPTION
----------- ---------------------------
1 project voor DBAsupport

 

Beschrijving van de aangemaakte tabellen:

SQL>desc mike_lob_tab
Name Null? Type
-------------------------------------------------- -------- -----------------
MIKE_NO NUMBER(38) DESCRIPTION CLOB

 

SQL>desc mike_tab_ext


Name Null? Type
-------------------------------------------------- -------- -----------------
MIKE_NO NUMBER(38) DESCRIPTION CLOB

 

SQL>desc mike_tab

 

Name Null? Type
-------------------------------------------------- -------- -----------------
MIKE_NO NUMBER(38) DESCRIPTION LONG

 

 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 390 gasten online