CLOB vs BLOB datatypes
Which is the best datatype to use that will hold an input stream or byte stream, CLOB or BLOB?
Thank you.
Saber wrote:
Which is the best datatype to use that will hold an input stream or byte stream, CLOB or BLOB?
Thank you.CLOB is for character data ... so you'd want a BLOB.
http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#SQLRF50997
Similar Messages
-
How we handle CLOB and BLOB Datatypes in HANA DB
Dear HANA Gurus,
We have would like to build EDW using HANA base on our source system Oracle and it's supports CLOB and BLOB datatypes
Would you please suggest how do we handle in HANA DB.
Let not say it's oracle specific.
Regards,
ManojHello,
check SAP HANA SQL Reference Guide for list of data types:
(page 14 - Classification of Data Types)
https://service.sap.com/~sapidb/011000358700000604922011
For this purpose might be useful following data types:
Large Object (LOB) Types
LOB (large objects) data types, CLOB, NCLOB and BLOB, are used to store a large amount of data such as text documents and images. The maximum size of an LOB is 2 GB.
BLOB
The BLOB data type is used to store large binary data.
CLOB
The CLOB data type is used to store large ASCII character data.
NCLOB
The NCLOB data type is used to store a large Unicode character object.
Tomas -
I just created a new database using dbca with General Purpose as the template, as I've done before. All went well until I tried to create tables that used clob or blob datatypes. I kept getting the error "ORA-03001: unimplemented feature".
What happened? Was the database created improperly? Is there a way to correct this without recreating the database?
ThanksI just created a new database using dbca with General
Purpose as the template, as I've done before. All
went well until I tried to create tables that used
clob or blob datatypes. I kept getting the error
"ORA-03001: unimplemented feature".
I have the same problem but only if I assign a tablespace to the table but not if i leave it to the default tablespace. -
Conversion of BLOB datatype to CLOB datatype
Hi,
I would need to convert the column datatype from BLOB to CLOB. currently in the table, the BLOB column has the data. the requirement is to convert this column from BLOB to CLOB datatype.
please help me how to convert from BLOB datatype to CLOB datatype
Thanks
Hari.I have just been dealing with the same issue -- mass conversion of data in BLOB form to CLOB. I think I've finally got it working well. I have a table that has an key column then both a BLOB and a CLOB column. I load the BLOBS into the table then run the following PLSQL block (uses the given proc) to transfer the data from the BLOB column to the CLOB column.
-- Proc to convert BLOB to CLOB
create or replace function stg.blob_to_clob( p_blb in blob ) return clob is
v_clb clob ;
v_dst integer := 1 ;
v_src integer := 1 ;
v_wrn integer ;
v_lng integer := dbms_lob.default_lang_ctx ;
begin
dbms_lob.createtemporary ( v_clb, false ) ;
dbms_lob.converttoclob
( dest_lob => v_clb
, src_blob => p_blb
, amount => dbms_lob.lobmaxsize
, dest_offset => v_dst
, src_offset => v_src
, blob_csid => dbms_lob.default_csid
, lang_context => v_lng
, warning => v_wrn
if ( dbms_lob.NO_WARNING != v_wrn ) then
v_clb := '~~~{ Error: Invalid Character in source BLOB }~~~' ;
end if ;
return v_clb ;
exception
when others then
v_clb := '~~~{ Error: BLOB Conversion Function Failed }~~~' ;
return v_clb ;
end ;
-- Use the proc above to convert each BLOB to a CLOB in the given table.
declare
cursor c1 is
/* Select the BLOBS to be converted. */
select id, m_blob, m_clob
from stg.temp_cnvrt
/* Trying to convert NULL BLOBS will result in an error */
where dbms_lob.getlength(m_blob) > 0
for update ;
v_tmp_clob clob ;
begin
FOR nxt in c1 LOOP
v_tmp_clob := stg.blob_to_clob( nxt.m_blob ) ;
update stg.temp_cnvrt
set m_clob = v_tmp_clob
where current of c1 ;
END LOOP ;
commit ;
end ; -
Hi all,
I was wondering what are the main advantages in using CLOB instead of BLOB for storing long texts in rtf format?
Could I have problems in migrating such data to a different database (with imp / exp or impdp / expdp)?
Could I lose some "special characters" if the client NLS_LANG setting are different from the server's ones?
thanks for every suggestion!
andreaSee the definition:
BLOB Datatype
The BLOB datatype stores unstructured binary large objects. BLOB objects can be thought of as bitstreams with NO CHARACTER SET SEMANTICS.
CLOB Datatype
The CLOB datatype stores single-byte and multibyte character data. Both fixed-width and variable-width character sets are supported, and both use the database character set.
BLOB is not designed for text data. It ignores NLS_LANG settings, that MAY sometimes an advantage, because no characterset conversion will happen in case of different settings (NLS_LANG during exp/imp,database characterset).
Werner -
Hi Gurus,
Oracle version is 11g on Windows.
I have two identical tables with one column named images is CLOB datatype in one table and BLOB datatype in another table.
I need to write a stored procedure to transfer all data from the first table to the second table including the CLOB column data to the BLOB column.
Thanks
Amitava.How to convert a CLOB to BLOB
-
Dbms_crypto and blob datatypes
Hi everyone
I've been trying to learn how to encrypt data (a file uploaded) using blob datatype. This is me first attempt at encrypting and have been doing some research on this. I need to use the BLOB as I am encrypting a file that is uploaded to the system. Does anyone have experience in this or know of a good example that I can take a look at?
RayHello,
check SAP HANA SQL Reference Guide for list of data types:
(page 14 - Classification of Data Types)
https://service.sap.com/~sapidb/011000358700000604922011
For this purpose might be useful following data types:
Large Object (LOB) Types
LOB (large objects) data types, CLOB, NCLOB and BLOB, are used to store a large amount of data such as text documents and images. The maximum size of an LOB is 2 GB.
BLOB
The BLOB data type is used to store large binary data.
CLOB
The CLOB data type is used to store large ASCII character data.
NCLOB
The NCLOB data type is used to store a large Unicode character object.
Tomas -
Cannot view BLOB datatypes in Oracle10g
After a successful upgrade from Oracle8i to Oracle10g, I cannot view tables with BLOB datatypes. I'm getting the following error in SQL*PLUS upon quering the table:
SP2-0678: Column or attribute type can not be displayed by SQL*Plus
When i try to do the same thing from TOAD, I'm getting this error instead:
A Query with LOB's requires OC18 mode, but OC17 mode is used.
I have also tried to create a new table with BLOB datatype (since i thought the culprit was a broken migrated data) but I got the same error. What am I missing here????Hy,
you never could view blobs via sqlplus
you only could use utl_raw.cast_to_varchar2 if there ist text inside your blobs.
regard
Martin -
BASE64 (PDF) CLOB to BLOB
Hello everybody! I have to convert a BASE64 representation of a PDF file to BLOB. I found one example on the Internet but there is something wrong with it and I can't figure it out.
create or replace function decode_base64(p_clob_in in clob) return blob is
v_blob blob;
v_offset integer;
v_buffer_varchar varchar2(32000);
v_buffer_raw raw(32000);
v_buffer_size binary_integer := 32000;
begin
if p_clob_in is null then
return null;
end if;
dbms_lob.CREATETEMPORARY(v_blob, true);
v_offset := 1;
FOR i IN 1..CEIL(dbms_lob.GETLENGTH(p_clob_in) / v_buffer_size)
loop
dbms_lob.READ(p_clob_in, v_buffer_size, v_offset, v_buffer_varchar);
v_buffer_raw := utl_encode.BASE64_DECODE(utl_raw.CAST_TO_RAW(v_buffer_varchar));*
dbms_lob.WRITEAPPEND(v_blob, utl_raw.LENGTH(v_buffer_raw), v_buffer_raw);
v_offset := v_offset v_buffer_size;+
end loop;
return v_blob;
end decode_base64;
The above procedure should work with files of any size (since there is a loop), but it only works when the PDF is smaller than 32 KB.Just a guess.
You may have additional CRLFs added when encoding.
Try this:
create or replace function replaceClob (opCLob CLOB,cpReplaceStr VARCHAR2,cpReplaceWith VARCHAR2) RETURN CLOB IS
cBuffer VARCHAR2 (32767);
nBuffer BINARY_INTEGER := 32767;
nStart PLS_INTEGER := 1;
nLen PLS_INTEGER;
oCRtn CLOB := EMPTY_CLOB;
BEGIN
DBMS_LOB.CreateTemporary(oCRtn,TRUE);
nLen := DBMS_LOB.GetLength(opCLob);
WHILE nStart < nLen
LOOP
DBMS_LOB.Read(opCLob, nBuffer, nStart, cBuffer);
IF cBuffer IS NOT NULL THEN
cBuffer := REPLACE(cBuffer, cpReplaceStr, cpReplaceWith);
DBMS_LOB.WriteAppend(oCRtn, LENGTH(cBuffer), cBuffer);
END IF;
nStart := nStart + nBuffer;
END LOOP;
RETURN oCRtn;
END;and then add to your code:
create or replace function decode_base64(p_clob_in in clob) return blob is
v_blob blob;
v_offset integer;
v_tem_clob clob;
v_buffer_varchar varchar2(32000);
v_buffer_raw raw(32000);
v_buffer_size binary_integer := 32000;
--v_buffer_size binary_integer := 3*1024;
begin
if p_clob_in is null then
return null;
end if;
-- Add this line
v_tem_clob := replaceClob(p_clob_in,UTL_TCP.CRLF,'');
dbms_lob.CREATETEMPORARY(v_blob, true);
v_offset := 1;
FOR i IN 1..CEIL(dbms_lob.GETLENGTH(v_tem_clob) / v_buffer_size) loop
dbms_lob.READ(v_tem_clob, v_buffer_size, v_offset, v_buffer_varchar);
v_buffer_raw := utl_encode.BASE64_DECODE(utl_raw.CAST_TO_RAW(v_buffer_varchar));
dbms_lob.WRITEAPPEND(v_blob, utl_raw.LENGTH(v_buffer_raw), v_buffer_raw);
v_offset := v_offset + v_buffer_size;
end loop;
return v_blob;
end decode_base64;Not tested.
HTH
Thomas -
?Working with clob and blob - using Dbms_Lob
I need to search through a blob and remove some of the data, but having problems working with dbms_lob.erase.
Reading the documentation, the procedure is supposed to work with either blobs or clobs, but I can't get it to work with the blob.
Here's what I've coded and it does not work correctly for blobs.
What have I've done wrong?
declare
v_start integer;
v_stop integer;
v_amount integer;
v_max_len integer:=32676;
v_offset integer:=1;
v_new_length integer;
v_clob clob;
v_blob blob;
begin
update test_clob
set clob_id = clob_id
where clob_id = 1
returning clob_desc into v_clob;
v_start := 0;
v_stop := 0;
v_amount := 0;
v_start := dbms_lob.instr(v_clob, '<property name="Name">SortMode', v_offset );
v_stop := dbms_lob.instr(v_clob, '</property>', v_start );
v_amount := ((v_stop - v_start)+11) ;
dbms_output.put_line('Clob: '||v_clob);
dbms_lob.erase(v_clob, v_amount, v_start);
dbms_output.put_line('Clob: '||v_clob);
rollback;
update test_clob
set clob_id = clob_id
where clob_id = 1
returning blob_desc into v_blob;
v_start := 0;
v_stop := 0;
v_amount := 0;
v_start := dbms_lob.instr(v_blob, utl_raw.cast_to_raw('<property name="Name">SortMode'), v_offset );
v_stop := dbms_lob.instr(v_blob, utl_raw.cast_to_raw('</property>'), v_start );
v_amount := ((v_stop - v_start)+11) ;
dbms_output.put_line('Blob: '||utl_raw.cast_to_varchar2(v_blob) );
dbms_lob.erase(v_blob, v_amount, v_start);
dbms_output.put_line('Blob: '||utl_raw.cast_to_varchar2(v_blob) );
rollback;
end trg_bui_user_assoc_layout;
/This is the output
Clob: this is only a test <property name="Name">SortMode</property> should leave this alone
Clob: this is only a test should leave this alone
Blob: this is only a test <property name="Name">SortMode</property> should leave this alone
Blob: this is only a testWell, you left out the table DDL and your insert for sample data (would be nice to have) as well as your Oracle version (pretty much a necessity).
Since i had to make my own there could be a difference in how you populated your table, but i can't reproduce your findings.
ME_ORCL?drop table test_clob purge;
Table dropped.
Elapsed: 00:00:00.09
ME_ORCL?
ME_ORCL?create table test_clob
2 (
3 clob_id number not null primary key,
4 clob_desc clob,
5 blob_desc blob
6 );
Table created.
Elapsed: 00:00:00.03
ME_ORCL?
ME_ORCL?insert into test_clob values
2 (
3 1
4 , 'this is only a test <property name="Name">SortMode</property> should leave this alone'
5 , utl_raw.cast_to_raw('this is only a test <property name="Name">SortMode</property> should leave this alone')
6 );
1 row created.
Elapsed: 00:00:00.01
ME_ORCL?
ME_ORCL?commit;
Commit complete.
Elapsed: 00:00:00.01
ME_ORCL?
ME_ORCL?declare
2 v_start integer;
3 v_stop integer;
4 v_amount integer;
5 v_max_len integer:=32676;
6 v_offset integer:=1;
7 v_new_length integer;
8
9 v_clob clob;
10 v_blob blob;
11
12 begin
13
14 update test_clob
15 set clob_id = clob_id
16 where clob_id = 1
17 returning clob_desc into v_clob;
18
19 v_start := 0;
20 v_stop := 0;
21 v_amount := 0;
22
23 v_start := dbms_lob.instr(v_clob, '<property name="Name">SortMode', v_offset );
24 v_stop := dbms_lob.instr(v_clob, '</property>', v_start );
25 v_amount := ((v_stop - v_start)+11) ;
26
27 dbms_output.put_line('Clob: '||v_clob);
28
29 dbms_lob.erase(v_clob, v_amount, v_start);
30
31 dbms_output.put_line('Clob: '||v_clob);
32
33 rollback;
34
35 update test_clob
36 set clob_id = clob_id
37 where clob_id = 1
38 returning blob_desc into v_blob;
39
40 v_start := 0;
41 v_stop := 0;
42 v_amount := 0;
43
44 v_start := dbms_lob.instr(v_blob, utl_raw.cast_to_raw('<property name="Name">SortMode'), v_offset );
45 v_stop := dbms_lob.instr(v_blob, utl_raw.cast_to_raw('</property>'), v_start );
46 v_amount := ((v_stop - v_start)+11) ;
47
48 dbms_output.put_line('Blob: '||utl_raw.cast_to_varchar2(v_blob) );
49
50 dbms_lob.erase(v_blob, v_amount, v_start);
51
52 dbms_output.put_line('Blob: '||utl_raw.cast_to_varchar2(v_blob) );
53
54 rollback;
55
56 end trg_bui_user_assoc_layout;
57 /
Clob: this is only a test <property name="Name">SortMode</property> should leave this alone
Clob: this is only a test should leave this alone
Blob: this is only a test <property name="Name">SortMode</property> should leave this alone
Blob: this is only a test should leave this alone
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.03
ME_ORCL?select *
2 from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
5 rows selected.
Elapsed: 00:00:00.03
ME_ORCL? -
Item style messagDownload for a blob datatype shows junk
Hello everybody,
I am using the item style 'messagDownload' for a blob datatype , but it is showing junk characters in the output page.
Has anybody faces this isse before.
Thanks in advance.
Riyazhi ,
i am having the same problem like yours. when i display the table in oa f page which contains filedata as blob , it is printin junk value.
i need to replace those junk value with any other character say '(Blob)'.
please help me if u solved this problem.
thanks -
Problem with special chars in BLOB datatype using contains keyword
Facing problem, when part searching with special chars in BLOB datatype. It is considering the non alpha-numeric chars as a separtor in a provided string
EX:
SELECT *
FROM RESUME_TEST P,grst_candidate d
WHERE d.candidate_id = p.candidate_id
AND CONTAINS(P.CAND_RESUME,'%VB.NET%',1) > 0
Strings: , VB.NET , PL/SQL AS/400 , C etc..
Followed the below approaches
1) created a table:
Syntax: create table resume_Test(cand_id number(10),cand_resume blob);
2) inserted the values into this table upto 60,000
3) created a context index
3.1 created preferences
Syntax:
BEGIN
ctx_ddl.create_preference('try_lexer3','BASIC_LEXER');
ctx_ddl.set_attribute('try_lexer3','printjoins','-_~!@#$%^&*(){}[],=?\;|><.+');
END;
3.2 created context index
Syntax:
CREATE INDEX CANDRESUME_CTX_IDX ON resume_test (cand_resume)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS ('LEXER try_lexer3 memory 500M');
4) while executing this index, it is taking much time approx 6 hrs(plz explain why it is taking time)
5) Problems:
5.1 when searching with string(VB.NET , PL/SQL AS/400 , C etc..) it is considering the special char as a separator
5.2 used escape char (\) also, but no effect
5.3 when searching with single char, it is giving error (ORA-29902,ORA-20000,DRG-51030)
5.4 getting the above error with wild card chars (& ,_, (),{},[])
So, please explain the clear scenarios, why am getting this error , and how to get the proper results.Have you tried adding the / char to the printjoin characters?
Indexing can take a lot of time, depending on the amount of data and your machine's power. You could try to parallelize the index creation and / or assign more memory
CREATE INDEX CANDRESUME_CTX_IDX ON resume_test (cand_resume)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS ('LEXER try_lexer3 memory 2000M') PARALLEL 8; -
Anyone know an easy way to convert clob data to blob data?
We upgraded a client to 8.1.7.2 and now we can no longer store MS-Word templates to the RDBMS.
I deduce this is because MS-Word templates are binary files.
Earlier versions of 8.1.7 and 8.1.6 allowed us to do this. However, this is no longer the case.
Some of my clob rows are over 6 meg.
I have written some PL/SQL code to basically retrieve the clob data in cursor, loops through the clob in 32767 blocks,
performing dbms_lob.substr, converts that data to hex(major pain), & then write the blocks using dbmbs_lob.write.
I keep getting the proverbial "ORA-06502: PL/SQL: numeric or value error: invalid LOB locator specified: ORA-22275".
Does anyone see flaws in my approach and might have an easier solution?
Thanks!Here's my code:
REATE OR REPLACE
PROCEDURE p_load_clob_to_blob IS
* Name: p_load_clob_to_blob
* Parameters: None
* Purpose: This procedure loads the narr_blob column in the narr table_text with clob data from the
* narr column.
* Notes: This procedure assumes that narr table has been altered with narr_blob column added.
* See the SQL below:
* alter table narr_text add (narr_blob blob);
* Once this procedure executes, the table must altered to drop the narr_text clob column,
* recreate the narr_text as blob, & then repopulate narr_text. See the SQL below:
* alter table narr_text drop column narr;
* alter table narr_text add (narr blob);
* update narr_text set narr = narr_blob;
* commit;
* Called By: Sys Admin
* CHANGE LOG
* Changed By Date Change Description
* EAO 01/16/02 Created.
rec_read INTEGER;
rec_update INTEGER;
write_cnt INTEGER;
write_amount BINARY_INTEGER;
write_offset INTEGER;
write_loop INTEGER;
total_length NUMBER;
total_written NUMBER;
buffer VARCHAR2(32767);
bbuffer RAW(32767);
temp_narr_id NUMBER;
max_loop INTEGER;
cx CLOB;
bx BLOB;
bx2 BLOB;
cur_evt varchar2(50); -- current event
v_err_descr varchar2(256);
i INTEGER;
hex varchar(32767);
CURSOR c_load_narr_clob IS
SELECT narr, narr_id
FROM narr_text
where narr_id = 6366;
BEGIN
insert_event_log('', 'p_load_clob_to_blob', '', '', '', 'p_load_clob_to_blob started', '');
rec_read := 0;
rec_update := 0;
---Fill file
insert_event_log('', 'p_load_clob_to_blob ','c_load_narr_clob ', '', 'S', 'c_narr_clob started', '');
FOR csr IN c_load_narr_clob LOOP
cur_evt := 'Select narr from narr table: ';
rec_read := rec_read + 1;
write_loop := 1;
write_cnt := 0;
write_offset := 1;
total_written := 0;
cx := csr.narr;
bx := empty_blob();
total_length := DBMS_LOB.GETLENGTH(cx);
max_loop := (total_length / 32767) + 1;
if (total_length <= 32767) THEN
write_amount := total_length;
ELSE
write_amount := 32767;
END IF;
dbms_output.put_line('Length=' || to_char(total_length) || ' Max loop=' || to_char(max_loop) || ' Write Amount=' || to_char(write_amount));
temp_narr_id := csr.narr_id;
while write_cnt < max_loop
loop
--FOR write_loop in 1..max_loop LOOP
delete temp_blob;
delete temp_raw;
commit;
cur_evt := 'Dbms_lob.substr: ';
dbms_output.put_line(cur_evt);
buffer := DBMS_LOB.SUBSTR(cx, write_amount, write_offset);
dbms_output.put_line('Write Amount='|| to_char(write_amount) || ' Write Offset=' || to_char(write_offset) );
cur_evt := 'Hex to Raw Assigment: ';
dbms_output.put_line(cur_evt);
bbuffer := null;
for i in 1..write_amount loop
hex := numtohex(ascii(substrb(buffer,i,1)));
bbuffer := bbuffer || hextoraw(hex);
end loop;
cur_evt := 'Insert temp_raw: ';
dbms_output.put_line(cur_evt);
insert into temp_raw(rx)
values (bbuffer);
commit;
cur_evt := 'Insert temp_blob: ';
dbms_output.put_line(cur_evt);
execute immediate 'insert into temp_blob(bx)
select TO_LOB(rx) from temp_raw';
commit;
cur_evt := 'Select bx2: ';
dbms_output.put_line(cur_evt);
bx2 := empty_blob();
select bx into bx2 from temp_blob;
cur_evt := 'Dbms_lob.append: ';
dbms_output.put_line(cur_evt);
dbms_lob.append(bx, bx2);
dbms_output.put_line('Write Amount='|| to_char(write_amount) || ' Write Offset=' || to_char(write_offset) );
write_offset := write_offset + write_amount;
total_written := total_written + write_amount;
write_cnt := write_cnt + 1;
if (write_cnt = max_loop) then
write_amount := total_length - total_written;
end if;
END LOOP;
dbms_output.put_line('Total_written = ' || to_char(total_written) );
cur_evt := 'Upd narr_blob in narr table: ';
update narr_text
set narr_blob = bx
where narr_id = temp_narr_id;
rec_update := rec_update + 1;
commit;
END LOOP;
insert_event_log('', 'p_load_clob_to_blob ','c_load_narr_clob ', '', 'C', 'c_narr_clob completed', '');
dbms_output.put_line('Records read=' || to_char(rec_read) || ' Records updated=' || to_char(rec_update) );
insert_event_log('', 'p_load_clob_to_blob', '', '', '', 'p_load_clob_to_blob ended', '');
EXCEPTION
WHEN OTHERS THEN
Rollback;
v_err_descr := 'FATAL ERROR OCCURRED -'||cur_evt||sqlerrm;
dbms_output.put_line (v_err_descr);
END;
FUNCTION numtohex(v_hex number) return varchar2
is
hex varchar2(4);
num1 number;
num2 number;
begin
num1 := trunc(v_hex/16);
num2 := v_hex-(num1*16);
if ( num1 >= 0 and num1 <= 9 ) then
hex := hex||to_char(num1);
end if;
if num1 = 10 then hex := hex||'A'; end if;
if num1 = 11 then hex := hex||'B'; end if;
if num1 = 12 then hex := hex||'C'; end if;
if num1 = 13 then hex := hex||'D'; end if;
if num1 = 14 then hex := hex||'E'; end if;
if num1 = 15 then hex := hex||'F'; end if;
if ( num2 >= 0 and num2 <= 9 ) then
hex := hex||to_char(num2);
end if;
if num2 = 10 then hex := hex||'A'; end if;
if num2 = 11 then hex := hex||'B'; end if;
if num2 = 12 then hex := hex||'C'; end if;
if num2 = 13 then hex := hex||'D'; end if;
if num2 = 14 then hex := hex||'E'; end if;
if num2 = 15 then hex := hex||'F'; end if;
return hex;
end; -
How to convert CLOB to BLOB with SQL Developer migration wizard?
Hi,
According to our requirement, we need to only migrate data from SQL Server 2008 to Oracle 11. I use the SQL Developer 3.0.04 migration wizard to do it.
I do migration from SQL Server (database name: SCDS41P2) to Oracle (User name: HCDS41P2).
My migration steps are as below: (I need to modify the target schema, so I add the steps 2) and step 3) )
1) Do migration by SQL Developer migration wizard;
2) Remove the Converted Database Objects node from migration project;
3) Re-do convert by SQL Developer migration wizard (contains changing the target schema);
When do step 1), the DBO_SCDS41P2 user is created automatically. CLOBTOBLOB_SQLDEVELOPER procedure is also created in this user.
I continued to run step 2) and step 3) with online mode. And find the table data which contains BLOB column can be moved into the target table. But from the Logging Page, I can't see the other detailed error info, so that I can't check which tables don't move data successfully.
Could you please tell me where the detail log file (e.g. contains every table's migration status) is if I use the online mode?
Additional, If I use offline mode to do step 3), I found the CLOB data can't be converted into BLOB automatically. Because in the load script (that is oracle_ctl.bat), only copy the source data to the CLOB column. After copy, it don't deal with the converting from CLOB to BLOB.
So could you please tell me how to convert CLOB to BLOB with offline mode?
Thanks so much.Hi,
For your first question about logging - after the migration there will be an entry in the right hand panel for the migration project. If you open this there are various fields that give information about the status of each part of the migration. Does this give you the information you need ?
For the second problem about offline moving blob data have a look at the SQL*Developer documentation -
Oracle® SQL Developer User’s Guide Release 3.0
in the section -
2.2.8.1.4 Populating the Destination Database Using the Data Files
which describes the problem and how to get round it.
Regards,
Mike
Edited by: mkirtley on Aug 12, 2011 10:49 AM -
How to use clob or blob data type in OWB
how to use clob or blob data type in OWB?
if OWB not surport these data type,how can i extract the large data type from data sourceThe same question was asked just two days ago No Data Found: ORA-22992
Nikolai Rochnik
Maybe you are looking for
-
Are there any tools that automate the conversion of SSJS to JSP?
What about a "wrapper" servlet to run the SSJS, do they exist? We are upgrading to Iplanted Web Server 6.0 and are looking for alternatives to a re-write
-
can someone please help? i brought a touch 4g and docking station for my wife (dock is a iwantit) now when i connect the touch to it and play music the music video does'nt play it just shows a scene saying "connected to the tv" well its not! its just
-
hi i recently bought a lenovo b550. but i got a problem with the function, which you can use by pressing fn + the key with the right orange icon. for example the upper keys on the F1-F12 buttons dont work. the sound +/- on the cursor keys do work, bu
-
How can I prevent Word 2013 from opening a PDF file to edit it?
As per the title - I create training manuals in MS Word and save as PDF for distribution to clients. How cna I prevent them from opening and editing them with Word 2013?
-
InDesign, can't open it can't uninstall it
I can't open InDesign. An error message tells me to uninstall InDesign and then reinstall it. But I can't uninstal it and when I try to use Adobe CleanUp tool it doesn't list InDesign as one of the program that I have. What to do? I need to use InDes