BFILE in 9i
I have read that in racle 8.1.5 you can only place a BFILE on device.
"cannot locate a single BFILE on more than one device, for instance, striped across a disk array"
I4m creating a very huge database with lots of pictures and I4m thinking on placing the files on a BFILE.
So is it possible to create more than on BFILE that works together under the same database so that these file together can hold that huge amount of BLOBS?
/Chris
I am confused a bit by your question, but I will try and give some facts that may help.
You can have as many BFILEs as you like, one or more per row if you like. BFILEs indicate the data is stored in an external database file. These files must be on a single physical device.
BLOBs are different. BLOBs are stored within the database files. We have customers with terrabyte databases filled with images in the database. The major advantage to doing it this way is data integrity and managability. There is little chace of someone messing up the filesystem for example. Using BFILEs, backups would have to be coordinated with the database and the external image files.
Similar Messages
-
Error in creating index on text BFILE
Hi,
I have put data into a table using SQL* Loader. The BFILE exist (I've tested it with a procedure). I've no errors during text indexing but when a look into the view ctx_user_index_errors, I have the following :
DRG-11101: failed to open file \drgit3
So, my index doesn't work.
Any ideas ?ORACLE_HOME must be set. Otherwise ctxhx.exe used during indexing won4t work.
null -
Error in loading a picture in BFILE
Hi People,
This is a procedure to load a .JPEG file in a column with bfile datatype.
I have created a table ER with following structure:
CREATE TABLE ER (ENO NUMBER, ENAME VARCHAR2(20), PHOTO BFILE);
now i have inserted values in this table as,
INSERT INTO ER(ENO,ENAME) VALUES(10,'VID');
now i have written a procedure to update the column of photo in er table.
CREATE DIRECTORY BF AS 'D:/';
CREATE OR REPLACE PROCEDURE load_bfile
(p_file_loc IN VARCHAR2) IS
v_file BFILE;
v_filename VARCHAR2(16);
BEGIN
v_filename := 'SAMPLE' || '.JPEG';
v_file := BFILENAME(p_file_loc, v_filename);
DBMS_LOB.FILEOPEN(v_file);
UPDATE eR SET PHOTO = v_file
where eno=10;
DBMS_OUTPUT.PUT_LINE('LOADED FILE: '||v_filename
|| ' SIZE: ' || DBMS_LOB.GETLENGTH(v_file));
DBMS_LOB.FILECLOSE(v_file);
END load_bfile;
The sample picture is now located in D: only.so inorder to execute the procedure i have issued as,
EXEC load_bfile('BF');
but following errors occured.
ERROR at line 1:
ORA-22288: file or LOB operation FILEOPEN failed
The system cannot find the file specified.
ORA-06512: at "SYS.DBMS_LOB", line 504
ORA-06512: at "SYS.LOAD_BFILE", line 8
ORA-06512: at line 1
what could be the error here.I have checked that all pathname is correct.please suggest me.This is the struct of the table ER.
SQL> DESC ER
Name Null? Type
ENO NUMBER
ENAME VARCHAR2(20)
PHOTO BINARY FILE LOB
INSERT INTO ER(ENO,ENAME) VALUES(10,'VID');
COMMIT;
The file is in local D drive.
CREATE DIRECTORY BF AS 'D:/';
CREATE OR REPLACE PROCEDURE load_bfile
(p_file_loc IN VARCHAR2) IS
v_file BFILE;
v_filename VARCHAR2(16);
BEGIN
v_filename := 'SAMPLE' || '.JPEG';
v_file := BFILENAME(p_file_loc, v_filename);
DBMS_LOB.FILEOPEN(v_file);
UPDATE eR SET PHOTO = v_file
where eno=10;
DBMS_OUTPUT.PUT_LINE('LOADED FILE: '||v_filename
|| ' SIZE: ' || DBMS_LOB.GETLENGTH(v_file));
DBMS_LOB.FILECLOSE(v_file);
END load_bfile;
EXEC load_bfile('BF');
BEGIN load_bfile('BF'); END;
ERROR at line 1:
ORA-22288: file or LOB operation FILEOPEN failed
The system cannot find the file specified.
ORA-06512: at "SYS.DBMS_LOB", line 504
ORA-06512: at "SYS.LOAD_BFILE", line 8
ORA-06512: at line 1
These are the steps i have followed.Is anything wrong in these steps?.This all i have done connecting to local database only. -
Error while trying to index a bfile
hi,
I have encountered the following error will trying to index a bfile . Following are the error messages, the listener.ora and creation script. I'm using a AIX Ver 4.3.3 J50 machine and my oracle version is 8.1.7 Thanks
Creation Script
SQL> create or replace directory DOC_DIR as '/u01/oradata/vs/documents/';
Directory created.
SQL> grant read on directory DOC_DIR to ctxsys;
Grant succeeded.
SQL> create table per_doc
2 (per_id number primary key,
3 doc1 bfile);
SQL> insert into per_doc
2 values
3 (1,
4 bfilename('DOC_DIR','816.doc'));
ERROR ENCOUNTER
create index doc_index on per_doc(doc1) indextype is ctxsys.context;
exec(): 0509-036 Cannot load program /u05/app/oracle/product/8.1.7/ctx/bin/ctxhx because of the following errors:
0509-150 Dependent module libsc_da.a(sc_da.o) could not be loaded.
0509-022 Cannot load module libsc_da.a(sc_da.o).
0509-026 System error: A file or directory in the path name does not exist.
Index created.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u05/app/oracle/product/8.1.7)
(ENVS =LD_LIBRARY_PATH=/u05/app/oracle/product/8.1.7/lib:/u05/app/oracle/product/8.1.7/ctx/lib)
(PROGRAM = extproc)
nullBelow is the .profile setting for Oracle
ORACLE_BASE=/u05/app/oracle
export ORACLE_BASE
ORACLE_HOME=/u05/app/oracle/product/8.1.7
export ORACLE_HOME
LIBPATH=$ORACLE_HOME/lib:ORACLE_HOME/ctx/lib:/usr/lib:/lib
export LIBPATH
ORACLE_SID=vs
export ORACLE_SID
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib
export CLASSPATH
I have also granted the read access right to ctxsys as reflected below. Is there any other directories that I need to grant ctxsys access to?
Thanks
<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by aw choon hock ([email protected]):
hi,
I have encountered the following error will trying to index a bfile . Following are the error messages, the listener.ora and creation script. I'm using a AIX Ver 4.3.3 J50 machine and my oracle version is 8.1.7 Thanks
Creation Script
SQL> create or replace directory DOC_DIR as '/u01/oradata/vs/documents/';
Directory created.
SQL> grant read on directory DOC_DIR to ctxsys;
Grant succeeded.
SQL> create table per_doc
2 (per_id number primary key,
3 doc1 bfile);
SQL> insert into per_doc
2 values
3 (1,
4 bfilename('DOC_DIR','816.doc'));
ERROR ENCOUNTER
create index doc_index on per_doc(doc1) indextype is ctxsys.context;
exec(): 0509-036 Cannot load program /u05/app/oracle/product/8.1.7/ctx/bin/ctxhx because of the following errors:
0509-150 Dependent module libsc_da.a(sc_da.o) could not be loaded.
0509-022 Cannot load module libsc_da.a(sc_da.o).
0509-026 System error: A file or directory in the path name does not exist.
Index created.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u05/app/oracle/product/8.1.7)
(ENVS =LD_LIBRARY_PATH=/u05/app/oracle/product/8.1.7/lib:/u05/app/oracle/product/8.1.7/ctx/lib)
(PROGRAM = extproc)
)<HR></BLOCKQUOTE>
null -
Hello, i have compiled and executed the BFileSample java standalone successfully. I am wondering how to use this in a production environment where there may be hundreds of image files stored categorically over a period of years? is it possible to use the BFILE_TABLE in conjunction w/ other tables e.g. use the BFILE_TABLE as fk to some table to query the oracle instance for select image files based on say some category: time, location and other relations? i have tried select * on BFILE_TABLE but i get the following errors:
SQL> select BFILE_COLUMN from BFILE_TABLE;
SP2-0678: Column or attribute type can not be displayed by SQL*Plus
Is the BFILE_TABLE usefull in anyway outside of the current implementation? thanx, david.Hi David,
BFILE's are also called external LOB's, since data is stored in OS files outside the database and use reference semantics.
Apart from conventional secondary storage devices such as hard disks, BFILEs may also be located on tertiary block storage devices such as CD-ROMs, PhotoCDs and DVDs.
A table having BFILE column can be used like any other table, you can reference any column and have fk relationships. The only disadvantage of BFILE's is that backup doesn't happen automatically (since reference is only stored), the OS has to take care of backups of BFILE data.
LOB's(BLOB, CLOB, BFILE) cannot be viewed in SQL Plus using selects, you can either get length or any associated attributes of these datatypes.
example:
select dbms_lob.getlength( BFILE_COLUMN) from bfile_table;
I would suggest BFILE when you don't want to stress your tablespace(CLOB and BLOB sit on tablespace) and also when data need not be replicated .i.e if you copy a BFILE record, data is not copied, only the reference is copied(both reference will point to same file), but in case of CLOB and BLOB complete data is duplicated.
http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/appdev.920/a96591/adl12bfl.htm#99013
Hope this helps.
Elango. -
Hi,
I'm using webutil for viewing files(doc,pdf,txt).These files are stored in FTP server.
But my requirement is i have to link that files with BFILE. means those file paths store in bfile. how to use bfile in forms.1. \forms\server\formsweb.cfg
archive_jini=frmall_jinit.jar,FormsProperties.jar
2. regedit
HKEY_LOCAL_MACHINE => FORMS_BUILDER_CLASSPATH
C:\DevSuiteHome_1\forms\java\frmbld.jar;C:\DevSuiteHome_1\jlib\importer.jar;
C:\DevSuiteHome_1\jlib\debugger.jar;C:\DevSuiteHome_1\jlib\utj.jar;
C:\DevSuiteHome_1\jlib\dfc.jar;C:\DevSuiteHome_1\jlib\help4.jar;
C:\DevSuiteHome_1\jlib\oracle_ice.jar;C:\DevSuiteHome_1\jlib\jewt4.jar;
C:\DevSuiteHome_1\jlib\ewt3.jar;C:\DevSuiteHome_1\jlib\share.jar;
C:\DevSuiteHome_1\forms\java\frmwebutil.jar;C:\DevSuiteHome_1\forms\java\frmall.jar;
C:\DevSuiteHome_1\forms\java\FormsProperties.jar;
3. Untuk Jdev.. include..Libraries [THE WAY I AM CREATING A BEAN..NO NEED TO READ THIS]
ORacle Forms
C:\DevSuiteHome_1\jdev\lib\ext\frmjdev_pjc.jar -
Get path and file name from Bfile
Hi,
I'm using Bfile to store images in a database. Is there a way to get the path and file name of the image from Bfile, because I need to pass that information into an image processing function.
Many thanks.
SheldonCan you use FILEISOPEN in the DBMS_LOB package?
See http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96591/adl03prg.htm#281893
-- CJ -
Need help on Reading BFILE, CLOB
Hi all
i am using Linux fedora 4
i have created a directory
create directory clob_dir as '/db10g/my_dir';
and created a table from examples of a book i have
CREATE TABLE BFILE_DOC
( ID INTEGER,
BFILE_CLMN BFILE
And a procedure to read a text file contents
CREATE OR REPLACE
PROCEDURE FILE_EXAMPLE (id_var in number) AS
SRC_BFILE_VAR BFILE;
DIR_ALIAS_VAR VARCHAR2(50);
FILENAME_VAR VARCHAR2(50);
CHUNK_SIZE_VAR INTEGER;
LENGTH_VAR INTEGER;
CHARS_READ_VAR INTEGER;
DEST_CLOB_VAR NCLOB;
AMOUNT_VAR INTEGER := 80;
DEST_OFFSET_VAR INTEGER := 1;
SRC_OFFSET_VAR INTEGER := 1;
CHAR_BUFFER_VAR VARCHAR2(160);
BEGIN
SELECT BFILE_CLMN
INTO SRC_BFILE_VAR
FROM BFILE_DOC
WHERE ID = id_var;
DBMS_LOB.CREATETEMPORARY(DEST_CLOB_VAR, TRUE);
IF (DBMS_LOB.FILEEXISTS(SRC_BFILE_VAR) = 1) THEN
IF (DBMS_LOB.FILEISOPEN(SRC_BFILE_VAR) = 0) THEN
DBMS_LOB.FILEOPEN(SRC_BFILE_VAR);
DBMS_LOB.FILEGETNAME(SRC_BFILE_VAR,
DIR_ALIAS_VAR,
FILENAME_VAR);
DBMS_OUTPUT.PUT_LINE('DIRECTORY NAME: ' || DIR_ALIAS_VAR);
DBMS_OUTPUT.PUT_LINE('FILE NAME : ' || FILENAME_VAR );
CHUNK_SIZE_VAR := DBMS_LOB.GETCHUNKSIZE(DEST_CLOB_VAR);
DBMS_OUTPUT.PUT_LINE('CHUNK SIZE : ' || CHUNK_SIZE_VAR);
LENGTH_VAR := DBMS_LOB.GETLENGTH(SRC_BFILE_VAR);
DBMS_OUTPUT.PUT_LINE('LENGTH : ' || LENGTH_VAR);
CHARS_READ_VAR := 0;
WHILE (CHARS_READ_VAR < LENGTH_VAR) LOOP
IF (LENGTH_VAR - CHARS_READ_VAR < AMOUNT_VAR) THEN
AMOUNT_VAR := LENGTH_VAR - CHARS_READ_VAR;
END IF;
DBMS_LOB.LOADFROMFILE(DEST_CLOB_VAR, SRC_BFILE_VAR,
AMOUNT_VAR, DEST_OFFSET_VAR,
SRC_OFFSET_VAR + CHARS_READ_VAR);
DBMS_LOB.READ(DEST_CLOB_VAR,
AMOUNT_VAR,
SRC_OFFSET_VAR,
CHAR_BUFFER_VAR);
DBMS_OUTPUT.PUT_LINE('CHAR BUFFER VAR:' || CHAR_BUFFER_VAR);
CHARS_READ_VAR := CHARS_READ_VAR + AMOUNT_VAR;
END LOOP;
END IF ;
END IF;
DBMS_LOB.FILECLOSE(SRC_BFILE_VAR);
DBMS_LOB.FREETEMPORARY(DEST_CLOB_VAR);
END FILE_EXAMPLE;
then i post a text file ( the size is 456.5 KB) in MY_DIR FOLDER
the i inserted the informatin in that table
INSERT INTO BFILE_DOC( ID , BFILE_CLMN)
VALUES (1, BFILENAME('CLOB_DIR', 'abc.txt'));
Then i called the procedure
SQL> call file_example(1);
here what i got
CHAR BUFFER VAR:噁‰㐳㔠〵㨲㔠††††††††††††††䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
CHAR BUFFER VAR:†††ਠ㈹䙒††††㜷䈠⁇噁‰㔳㔠⁆剁‰†䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
CHAR BUFFER VAR:㜰㔠〱㨳〠††††††††††††††††䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
CHAR BUFFER VAR:†ਠ††††††䵁剉呉䴠䡏呅䰠††††††䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
CHAR BUFFER VAR:††††〶㨵㔠〹㨵㔠〶㨵㔠⁆剁†㜷㨴〠ਠ†䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
CHAR BUFFER VAR:〲䵏†‱㠶†㜷䈠⁆剁‱㈴㔠⁇噁‱㐰〠〱㨱†䥓单䕄㨠〷⼳〯〶†䩅䐠䉁卅†ਠⴭⴭⴭⴭ
call file_example(1)
ERROR at line 1:
ORA-20000: ORU-10027: buffer overflow, limit of 1000000 bytes
ORA-06512: at "SYS.DBMS_OUTPUT", line 32
ORA-06512: at "SYS.DBMS_OUTPUT", line 97
ORA-06512: at "SYS.DBMS_OUTPUT", line 112
ORA-06512: at "SCOTT.FILE_EXAMPLE", line 51
and here a sample of the content in the text file if i open it with text editor
1 MO REPORT AT 12:35 EFFECTIVE SEP 04-SEP 18
1 SA
DAY FLT: EQP DEPARTS ARRIVES BLK. BLK: DUTY CR: LAYOVER
MO 034 744 JED 1405 RUH 1540 01:35
SAHARA AIRPORT HOTEL 01:35 03:35 01:35 RUH 19:05
TU 1905 AB3 RUH 1045 TIF 1215 01:30
TU 1904 AB3 TIF 1315 RUH 1440 01:25
TU 1783 AB3 RUH 1540 GIZ 1730 01:50
TU 1777 AB3 GIZ 1820 JED 1930 01:10
05:55 10:45 05:55
CREDIT_HRS: 07:30 BLK_HRS: 07:30 LDGS: 5 TAFB 31:25
2 MO REPORT AT 21:25 EFFECTIVE SEP 04-SEP 18
1 SA
DAY FLT: EQP DEPARTS ARRIVES BLK. BLK: DUTY CR: LAYOVER
MO 113 77B JED 2255 LHR 0520 06:25
HILTON LONDON KENSIN 06:25 08:25 06:25 LHR 38:25
WE 116 77B LHR 1945 JED 0150 06:05
06:05 08:05 06:05
CREDIT_HRS: 12:30 BLK_HRS: 12:30 LDGS: 2 TAFB 52:55
( the text file has more than 6000 line)
notes:
my ENV file ( bash_profile)
# .db10g
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin; export PATH
ORACLE_BASE=/db10g/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
NLS_LANG=AMERICAN_AMERICA.AL32UTF8; export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
unset USERNAME
The charset of the database is set to AL32UTF8. during the installtion time
The questions :
Whats wrong here?
why i can not read the content of the txt file as it is ?
i tried this issue in windows xp with SQL*PLUS, i got the same chars but no error.
what to do to avoid the errors and to see the text file as its?
how to load the content of the text file to CLOB Column if it is larger than 4000?
thanksset serveroutput on
BEGIN
-- Enable DBMS_OUTPUT and set the buffer size. The buffer size can be between 1 and 1,000,000
dbms_output.enable(1000000);
END;
check the datatypes of the supplied packages from the doumentation;
dbms_output.put_line(item VARCHAR2);
dbms_lob.read(
lob_loc IN BLOB,
amount IN OUT NOCOPY INTEGER,
offset IN INTEGER,
buffer OUT RAW);
also sample usage of the package will help -> http://psoug.org/reference/dbms_lob.html -
Is there any convenient way to work with BFILE column in EJB 3.0 projects
Hi, all
Can anybody answer this simple question?
I know there is a special type - BFILEDomain in ADF BC, but what about EJB
any links and advices would be greatly appreciated.
Thanks in advance. Alex.This (similar) issue was filed as bug #7315754 in our bug tracking system.
We do not support LOB, BLOB, BFILE datatypes as of now.
All types which we don't recognize currently default to a field of type String. This mainly serves as a placeholder field that the user can refactor
to any other desired type. Typically, when the JPA provider doesn't support the type, the field load/save operations can be managed, using hand-written
JDBC code, inside @PrePersist or @PostPersist methods. -
I have to store graphical documents in an Oracle Database using Apex. I have designed an application based on the Sample Application for Customers, Product, Orders Page 3 and 6 using apex_util.get_blob_file_src and a File Browse Item to store the document in a BLOB field. That works perfectly.
Now I had to change the application to store the BLOB content in a file and set a pointer in a BFILE column leaving the BLOB column empty. Therefore I wrote a view converting BFILE to BLOB and some instead of triggers to convert BLOB to BFILE.
Then I rewrote my Apex pages using the view instead of the table. It doesn’t work. I noticed that when using the table Apex is first executing an INSERT leaving the BLOB empty and after that an UPDATE to fill the BLOB column when creating a new record. When using the view instead of the table the INSERT is executed but not the UPDATE.
So I wanted to write a page process to update the table manually. But I found that there was no entry in the view APEX_APPLICATION_FILES generated by Apex. So I have no chance to obtain the BLOB value and use it to update my table.
What can I do to have the BLOB content written by Apex to the table the view APEX_APPLICATION_FILES is selecting from?Hi
WWV_FLOW_FILES uses APEX security mechanisms - so you cannot see any entry when selecting it
from e.g. SQL*Plus. If you want to check the entries you need to use SQL Workshop.
If you create a File Browse Item named P1_FILE you can select the BLOB content with
declare
v_lob blob;
begin
-- get uploaded content
select CLOB_CONTENT into v_lob from wwv_flow_files where name = :P1_FILE;
-- insert into own table
insert into ...
-- remove from WWV_FLOW_FILES after copying
delete from wwv_flow_files where name = :P1_FILE;
end;
Note that you cannot insert into a BFILE - your target table column must be of the type BLOB
Regards
-Carsten -
ORA-22275 with BFILE record processing
Hi All,
I'm processing records in a table that contains an optional bfile column and then comparing each record with another record from the same table. I'm getting "ORA-22275: Invalid LOB locator specified" when I get my comparison record using a function - and the cursor record contains a null bfile following a not null bfile record.
Here's my simplified 11g test case:
create table jr_test
(pk_id number not null
,stuff varchar2(100) not null
,external_file bfile);
insert into jr_test values (1,'Some other data',bfilename('MY_DIR','jr1.txt'));
insert into jr_test values (2,'Some other data',bfilename('MY_DIR','jr2.txt'));
insert into jr_test values (3,'No bfile',null);
commit;
DECLARE
l_rec_1 jr_test%ROWTYPE;
l_rec_2 jr_test%ROWTYPE;
FUNCTION record_to_compare(p_id IN jr_test.pk_id%TYPE) RETURN jr_test%ROWTYPE IS
l_rec jr_test%ROWTYPE;
BEGIN
SELECT *
INTO l_rec
FROM jr_test
WHERE pk_id = p_id;
RETURN l_rec;
END record_to_compare;
BEGIN
FOR x IN (SELECT *
FROM jr_test
ORDER BY pk_id /* desc */) -- ORA-22275 when order by pk_id asc
LOOP
l_rec_1 := x;
-- Get another record (it's always the same one in this test case)
l_rec_2 := record_to_compare(x.pk_id);
END LOOP;
END;With a descending order by clause (ie. null bfile first) it works OK.
With an ascending order by clause (ie. not null bfiles first) it crashes with ORA-22275.
It looks like a LOB initialisation problem, but I's welcome your comments.
Regards
JRHello
It doesn't actually appear to have anything to do with the order by as such, it is just the order in which the rows are accessed. I've modified your test case to just call the function in a specific order. However if I change to use a stored procedure with an OUT parameter, there is no such issue. I'll dig a bit more but maybe this helps narrow the field of search down a little...
XXXX> declare
2 l_rec_1 jr_test%ROWTYPE;
3 l_rec_2 jr_test%ROWTYPE;
4
5 FUNCTION record_to_compare(p_id IN jr_test.pk_id%TYPE) RETURN jr_test%ROWTYPE IS
6 l_rec jr_test%ROWTYPE;
7 BEGIN
8 SELECT *
9 INTO l_rec
10 FROM jr_test
11 WHERE pk_id = p_id;
12
13 RETURN l_rec;
14 END record_to_compare;
15
16 BEGIN
17
18 -- Get another record (it's always the same one in this test case)
19 l_rec_2 := record_to_compare(1);
20 l_rec_2 := record_to_compare(2);
21 l_rec_2 := record_to_compare(3);
22
23 END;
24 /
declare
ERROR at line 1:
ORA-22275: invalid LOB locator specified
Elapsed: 00:00:00.12
XXXX>
XXXX> declare
2 l_rec_1 jr_test%ROWTYPE;
3 l_rec_2 jr_test%ROWTYPE;
4
5 FUNCTION record_to_compare(p_id IN jr_test.pk_id%TYPE) RETURN jr_test%ROWTYPE IS
6 l_rec jr_test%ROWTYPE;
7 BEGIN
8 SELECT *
9 INTO l_rec
10 FROM jr_test
11 WHERE pk_id = p_id;
12
13 RETURN l_rec;
14 END record_to_compare;
15
16 BEGIN
17
18 -- Get another record (it's always the same one in this test case)
19 l_rec_2 := record_to_compare(3);
20 l_rec_2 := record_to_compare(2);
21 l_rec_2 := record_to_compare(1);
22
23 END;
24 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
XXXX>
XXXX> declare
2 l_rec_1 jr_test%ROWTYPE;
3 l_rec_2 jr_test%ROWTYPE;
4
5 PROCEDURE record_to_compare
6 (p_id IN jr_test.pk_id%TYPE,
7 p_row out jr_test%ROWTYPE
8 )
9 IS
10 BEGIN
11 SELECT *
12 INTO p_row
13 FROM jr_test
14 WHERE pk_id = p_id;
15 END;
16
17 BEGIN
18
19 -- Get another record (it's always the same one in this test case)
20 record_to_compare(3,l_rec_2);
21 record_to_compare(2,l_rec_2);
22 record_to_compare(1,l_rec_2);
23
24 END;
25 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
XXXX>
XXXX> declare
2 l_rec_1 jr_test%ROWTYPE;
3 l_rec_2 jr_test%ROWTYPE;
4
5 PROCEDURE record_to_compare
6 (p_id IN jr_test.pk_id%TYPE,
7 p_row out jr_test%ROWTYPE
8 )
9 IS
10 BEGIN
11 SELECT *
12 INTO p_row
13 FROM jr_test
14 WHERE pk_id = p_id;
15 END;
16
17 BEGIN
18
19 -- Get another record (it's always the same one in this test case)
20 record_to_compare(1,l_rec_2);
21 record_to_compare(2,l_rec_2);
22 record_to_compare(3,l_rec_2);
23
24 END;
25 /
PL/SQL procedure successfully completed.HTH
David -
Download a PDF file with a Bfile field
Hello, my name is Massimo and i'am looking for an jsp example where is possible download a PDF stored in a file system accessed with a Bfile column.
ThanksHi,
I am guessing you want the data to go from the Database through the web server and to the User's Web Browser.
You need to provide web access to the data.
You can do this with the PL/SQL agent, a servlet or other techniques. Please look at the examples for the photo album. You can use ORDDOC to store the data.
http://otn.oracle.com/sample_code/products/intermedia/index.html
http://otn.oracle.com/software/products/intermedia/htdocs/descriptions/imedia_code_wizard.html -
Using images stored in DB BFile columns
Hi,
I am using 11g r1p1 .. I have a DB table where I store images as BFile. What should I do to display these images on the page? I am using ADF stack..
ThanksHi Timo,
I saw some of those but I thought that there would be a better and more out of box way of doing it.
Looks like we can't just drag and drop an image column on the page.. We need to write code and maintain it for fulfilling a basic need , displaying a image..
Thanks -
Error while inserting data into BFILE datatype
Dear Experts,
I am trying to insert data into resume table, but it is throwing error:
create table resume(resume blob);
declare
f_lob bfile;
b_lob blob;
begin
insert into resume(resume) values(empty_blob())
return documents into b_lob;
f_lob := bfilename( 'RESUME_SAVE', 'Pawan-resume.doc' );
dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
dbms_lob.loadfromfile
( b_lob, f_lob, dbms_lob.getlength(f_lob) );
dbms_lob.fileclose(f_lob);
commit;
end;
return documents into b_lob;
ERROR at line 8:
ORA-06550: line 8, column 10:
PL/SQL: ORA-00904: "DOCUMENTS": invalid identifier
ORA-06550: line 7, column 2:
PL/SQL: SQL Statement ignored
Please help
Regards
Sunil KumarThank you very much Mihael................... It works
But I think there is a mistake in oracle documentation, please check following link:
http://docs.oracle.com/cd/B10501_01/appdev.920/a96591/adl14cas.htm
Thanks & Regards
Sunil Kumar -
I have a problem with a pending session (Oracle 8.1.7, Windows 2000). The active process is waiting for a BFILE to close (BFILE closure). It has been waiting > 7000 secs. The file to read is a simple csv-file with 10 lines.
I'm using the widely spread "ftp"-package (I have removed all procedures with a "binary" part as 8i dont have the "put_raw" feature. I've used binary part of the package in 10g without any problems).
The procedure where the problem occurs:
FUNCTION get_local_ascii_data (p_dir IN VARCHAR2,
p_file IN VARCHAR2)
RETURN CLOB IS
l_bfile BFILE;
l_data CLOB;
l_amount BINARY_INTEGER := 32767;
l_pos INTEGER := 1;
wText varchar2(32767);
BEGIN
DBMS_LOB.createtemporary (lob_loc => l_data,
cache => TRUE,
dur => DBMS_LOB.call);
l_bfile := BFILENAME(p_dir, p_file);
DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
DBMS_LOB.loadfromfile(l_data, l_bfile, DBMS_LOB.getlength(l_bfile));
DBMS_LOB.fileclose(l_bfile);
RETURN l_data;
END;
The file to be read contains the following:
1;john;heinrich;vejnavn 1;2650;hvidovre
2;john;heinrich;vejnavn 2;2650;hvidovre
3:john;heinrich;vejnavn 3;2650;hvidovre
4;john;heinrich;vejnavn 4;2650;hvidovre
5;john;heinrich;vejnavn 5;2650;hvidovre
6;john;heinrich;vejnavn 6;2650;hvidovre
7;john;heinrich;vejnavn 7;2650;hvidovre
8;john;heinrich;vejnavn 8;2650;hvidovre
9;john;heinrich;vejnavn 9;2650;hvidovre
10;john;heinrich;vejnavn 10;2650;hvidovre
Any clue?
It locks the package in question, and killing the session dont free the package. Only a db shotdown will free the package. Is there a way to "close" the bfile?What information is there in your post indicating the BFILE did not close and that this is the cause of the problem?
8.1.7 is so old I haven't seen it in almost a decade so I can't test this out but it seems to me you should be focusing new development efforts on a version of the product that has been supported during the current millennium. -
Read a bfile and write its contents in a file stored in my hard disk
I will try to describe my problem as clearly as I can.
I have created a table that includes a LOB column "BFILE"
Then I'm trying to READ the BFILE stored in our database using the
DBMS_LOB package.
so far so good.
Now I want to write these data that I have read in the step above in a file
saved in my local disk. The problem is, since the file in databse is
stored as binary and I read Raw Data , I cannot create an exact copy of this
file. It seems that It doesn't write the RAW data in the binary format.
I have used the DBMS_LOB.READ to read the data and it works fine.
Now I want to create a file in my local disk and dump the data that I have
read from the BFILE that has been initially stored in the database.
Is there any solution to this problem?
I hope to hear from you soon
Thanks in advanceignore me now.... I answered my own question a short while
ago.
for anyone who cares....
I used CFHTTP to get the page and then used a cffile to write
the #cfhttp.filecontent# into the new file!
Maybe you are looking for
-
How to reinstall Recovery HD after full Time Machine recover?
I had to recover my primary Macinstoh HD to a new disk from Time Machine, but somehow I now lost my Recover HD on the Macintosh HD. To do the initial recover I had to install Mac OS X Lion on a 2nd internal Hard Drive, but now I want to use Time Mac
-
No motion in motion menus 4.2
My motion menus (the drop zones from the templates) don't show up when I simulate or build ... the motion menu tap is checked ...they do show up when I replace them with a still (motion menu unchecked) . I just upgraded to 4.2 is this an up grade iss
-
Hi! How do I assign certain files (music; photos) etc to go directly to media card and not the phone memory...
-
Vertical text in CFChart for x-axis item
I had a problem when I view a graph, for example <cfchartdata item="#Depart_Name#" value="#Salary#">. if depart_name to long the name did not be display. how can i DISPLAY Depart_Name in vertical?anyone?
-
Crashing - New Installation InDesign CS 6 fully patched
I've just installed Adobe CS 6 Web and Design Premium on a Macbook Pro running Mac OS X 10.7.5. This computer uses Extensis Universal Type Server client 3.3.0. Immediately following the installation and patching, InDesign crashes following launch whe