Insert image to long raw column Oracle 9i PL/SQL

I am trying to insert a .jpg image into an Oracle 9i table datatype long raw. I am coding in PL/SQL. I have researched inserting images and all I get back is the cool dbms_lob utility info. I cant change the column type to a blob - the database is a people soft delivered table and I am not allowed to change it.
Has anyone done this?
Does anyone have sample code?
Pretty Please (I need any help I can get)
Kelli

user10506010 wrote:
Can u provide me a solution for this...Can you read the title of this forum?
>
Forum: Community Feedback and Suggestions (Do Not Post Product-Related Questions Here)
Use this forum for feedback about OTN programs, Web site content, and systems - product-related questions will be deleted.

Similar Messages

  • How to load image in Long Raw column?

    Dear all,
    I need to upload a jpg image to a Long Raw column in one of our tables. Is there a way or utility so that I can do this thru a PL/SQL code? Please help.
    Regards,
    Amit

    You must not be using LONG data type. It has been deprecated. You must be using BLOB. Here is an extract from AskTom.com on how to load a file into BLOB field.
    create table demo
    ( id        int primary key,
      theBlob    blob
    create or replace directory my_files as '/export/home/tkyte/public_html';
    declare
        l_blob    blob;
        l_bfile    bfile;
    begin
        insert into demo values ( 1, empty_blob() )
        returning theBlob into l_blob;
        l_bfile := bfilename( 'MY_FILES', 'aria.gif' );
        dbms_lob.fileopen( l_bfile );
        dbms_lob.loadfromfile( l_blob, l_bfile,
                                   dbms_lob.getlength( l_bfile ) );
        dbms_lob.fileclose( l_bfile );
    end;
    /Below is the link for the same.
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:232814159006

  • Loading Images into LONG RAW column using SQL or PL/SQL

    Hi!
    I am trying to load images into a LONG RAW column. Can anybody tell me how to do this using SQL or PL/SQL. I do not want to use Forms to do this. And, I have a limitation using BLOBs.
    Thanks in Advance,
    Kotesh.

    You wrote that you cannot use a java class to insert a picture. We are working on a school project and HAVE to use java as a client and Oracle 7 as a server.
    Can you tell us how this is to be done?
    Thank you in advance,
    Bart van der Heijden

  • How to insert records with LONG RAW columns from one table to another

    Does anybody know how to use subquery to insert records with columns of LONG RAW datatype from one table to another? Can I add a WHERE clause in the subquery statement? Thanks.

    Insert into ... Select statements are not supported for long or long raw. You will have to either use PL/SQL or convert your long raw to blobs.

  • Inserting into long raw column type

    Hello,
    We tried to insert into a bmp file into the a column of type long raw and got the following error: "invalid value stored in pcbValue". There was no ORA message code assign to this error.
    Willy

    Thanks !
    JDeveloper Team (guest) wrote:
    : Hi,
    : You need to use streams to do this. In the JDBC User's Guide
    and
    : Reference, there is a whole chapter on using streams. Here is
    : some example code from the 8.1.5 JDBC User's Guide:
    : The following Java code snippet writes the data from the
    LESLIE
    : LONG RAW column into a file called
    : leslie.gif:
    : ResultSet rset = stmt.executeQuery ("select GIFDATA from
    : streamexample where
    : NAME='LESLIE'");
    : // get first row
    : if (rset.next())
    : // Get the GIF data as a stream from Oracle to the client
    : InputStream gif_data = rset.getBinaryStream (1);
    : try
    : FileOutputStream file = null;
    : file = new FileOutputStream ("leslie.gif");
    : int chunk;
    : while ((chunk = gif_data.read()) != -1)
    : file.write(chunk);
    : } catch (Exception e) {
    : String err = e.toString();
    : System.out.println(err);
    : } finally {
    : if file != null()
    : file.close();
    : In this example the contents of the GIFDATA column are
    : transferred incrementally in chunk-sized pieces between
    : the database and the client. The InputStream object returned
    by
    : the call to getBinaryStream() reads the data
    : directly from the database connection.
    : Zvonimir Vukovi (guest) wrote:
    : : Zvonimir Vukovic (guest) wrote:
    : : : Hi !
    : : : I have a problem when inserting an image (eg. GIF file)
    : into
    : : : Long Raw column. I am using JDeveloper 1.1, and I need to
    : read
    : : : images from my local hard drive and insert them into
    Oracle
    : : : DBMS. I've done a reverse thing (copying image from Long
    Raw
    : : : column to my HDD). I would be very thankful for a piece of
    : : JDBC
    : : : code which would solve my problem.
    : : : Thanks,
    : : : Zvonimir Vukovi
    : : I've forgotten to say that I need to use na Applet to do
    the
    : : job. I can read the image into AWT Image control, but I
    don't
    : : know how to get it into the Long Raw column
    : : Thanks again.
    : : Z.V.
    null

  • Load image file into a LONG RAW column via SQL*Loader

    Does anyone know how to load a image file into a LONG RAW column via SQL*Loader?
    Thanks
    -Hsing-Hua-

    Are you trying to import the image on the client into Oracle lite, or from the server end into the main oracle database for download to the client?
    On our system images are loaded into the the oracle lite database (10g R1 at the moment) on the client (DELL X50 PDA's) into a BLOB (Not LONG RAW) column using Java (relatively standard functionality in Java) as this is what our application software is written in.
    From the server end, we do not at the moment load images as such, but we do load the application software into the database for deployment of new versions to the clients (the DMC/DMS updates we have found very unreliable), and the technique should be the same for images. Again the file is imported into a BLOB column.
    NOTE a column defined as BLOB on the main Oracle database appears as a LONG VARBINARY on the client Oracle lite database, but the synchronisation process handles the conversion with no problem.
    To import into a BLOB column on the server try the following
    1) you will need to create a DIRECTORY (CREATE DIRECTORY command) within the database, pointing at a directory on the database server (or accessible from it). This is needed for the file location.
    CREATE OR REPLACE DIRECTORY PDA_FILE_UPLOAD AS '/pdaapps/jar/'
    NOTE create directory needs to be run as SYSTEM
    2) define your table to hold the image and other data. Our tables is
    SQL> desc pda_applications
    Name Null? Type
    ID NOT NULL NUMBER(12)
    PDAAT_CODE NOT NULL VARCHAR2(10)
    VERSION NOT NULL NUMBER(5,2)
    PART_NO NOT NULL NUMBER(3)
    FILE_OBJECT BLOB
    DEPLOY_APPLICATION_YN NOT NULL VARCHAR2(1)
    3) copy the image (or in our case a .jar file) to the database server directory specified in step 1
    4) the actual import is done using a DBMB_LOB procedure
    PROCEDURE pr_load_file
    Module Name     :     pr_load_file
    Description     :     Main call. Create a new pda_applications record, and import the specified file into it
    Version History:
    Vers. Author Date Reason
    1.0 G Wilkinson 03/02/2006 Initial Version.
    (PA_VERSION IN NUMBER
    ,PA_FILENAME IN VARCHAR2
    ,PA_PDAAT_CODE IN VARCHAR2
    ,PA_PART_NO IN NUMBER DEFAULT 1
    ,PA_DEPLOY IN VARCHAR2 DEFAULT 'Y')
    IS
    l_FileLocator BFILE;
    l_blobLocator BLOB;
    l_seq NUMBER;
    l_location VARCHAR2(20);
    no_params EXCEPTION;
    call_fail EXCEPTION;
    BEGIN
    -- Throw error if required details not present
    IF pa_version IS NULL
    OR pa_filename IS NULL
    OR pa_pdaat_code IS NULL THEN
    RAISE no_params;
    END IF;
    -- Initialize the BLOB locator for writing. Note that we have
    -- to import a blob into a table as part of a SELECT FOR UPDATE. This locks the row,
    -- and is a requirement for LOADFROMFILE.
    SELECT pdaa_id_seq.nextval
    INTO l_seq
    FROM dual;
    -- First create the application record (file is imported by update, not insert
    INSERT INTO pda_applications
    (ID,PDAAT_CODE,VERSION,PART_NO,FILE_OBJECT,DEPLOY_APPLICATION_YN)
    VALUES (l_seq,pa_pdaat_code,pa_version,pa_part_no,EMPTY_BLOB(),pa_deploy);
    -- Lock record for update to import the file
    SELECT file_object INTO l_blobLocator
    FROM pda_applications
    WHERE id=l_seq
    FOR UPDATE;
    -- Initialize the BFILE locator for reading.
    l_FileLocator := BFILENAME('PDA_FILE_UPLOAD', pa_filename);
    DBMS_LOB.FILEOPEN(l_FileLocator, DBMS_LOB.FILE_READONLY);
    -- Load the entire file into the character LOB.
    -- This is necessary so that we have the data in
    -- character rather than RAW variables.
    DBMS_LOB.LOADFROMFILE(l_blobLocator, l_FileLocator
    ,DBMS_LOB.GETLENGTH(l_FileLocator)
    ,src_offset => 1);
    -- Clean up.
    DBMS_LOB.FILECLOSE(l_FileLocator);
    -- Create download records for each user associated with the application for sending to the PDA's
    -- to install the software
    IF pa_deploy = 'Y' then
    IF fn_deploy (pa_pdaa_id => l_seq
    ,pa_pdaat_code => pa_pdaat_code) != 'SUCCESS' THEN
    RAISE call_fail;
    END IF;
    END IF;
    EXCEPTION
    WHEN no_params THEN
    pkg_appm.pr_log_message( pa_mdl_name => g_module_name
    , pa_mdl_version => fn_get_body_version
    , pa_error_code => SQLCODE
    , pa_location => l_location
    , pa_text => 'Missing parameters'
    , pa_severity => 'E'
    WHEN OTHERS THEN
    DBMS_LOB.FILECLOSE(l_FileLocator);
    pkg_appm.pr_log_message( pa_mdl_name => g_module_name
    , pa_mdl_version => fn_get_body_version
    , pa_error_code => SQLCODE
    , pa_location => l_location
    , pa_text => SQLERRM
    , pa_severity => 'E'
    END pr_load_file;
    I hope this may be of some help

  • URGENT - Extract Image Files From Long Raw Column

    Hi.
    I have to extract image files (tif and wmf format) from "long raw" column and put them in a directory, using a PL/SQL procedure.
    Can anyone help me.
    Thanks

    Well that is interesting, that ORA returns no records on Metalink. Anyway, that was for my own curiosity.
    As you are on 10g, this is how I would write a long raw to a file if I had no choice:
    1) create a gtt with a column of type blob
    2) insert into the gtt the long raw column using the to_lob conversion function
    3) you now have a lob!
    4) open a binary file for writing using utl_file (binary mode was introduced in 10g)
    4) use dbms_lob to read through the blob and write it in chunks to the file
    You will have to do this row by row. It will be painfully excrutiatingly slow.
    This is basically your only choice unless you have a OCI programmer to hand. In which case I would be getting them to write the C code to read the long raw column and write it to a file. This could then be compiled into a library and called as an external procedure from PL/SQL.
    HTH
    Chris

  • Memory Leak with Oracle ODBC Driver for Long Raw columns

    Oracle version : 8.1.7
    Platform : Win2K
    Oracle ODBC Driver version : 8.0.1.7.5.0.0
    Hi,
    I've got an Oracle database upgraded from
    V8.0.5 to V8.1.7 which has a table having one long raw +
    normal columns. I was able to observe distinct memory
    leaks (approx 80K) when using ODBC interface calls (thro C++ code) that referenced a combination of normal & long raw columns in a select statement. However, this leak was not observed when only normal columns were present in the
    select statement. Is there any known restriction for using
    long raw columns with other columns? Or do long raw columns have a known memory leak problem thro ODBC?
    Thanks!
    Regards
    Sanchayan

    Did you ever get an answer on this issue?
    Thanks in advance

  • Updating and inserting on Long Raw column

    Hi All,
    My source table contains LONG RAW column in XX databse. I have to fetch the data from this table in YY Databse using DB link and insert into same structured table. The problem is, i can not access the LONG RAW data for some rows which the size exceeding above 32k.
    My requirement is, i have to fetch and insert or update the record(Source and target table structure is same and dtabase is different).
    Please suggest the best way of handle this problem.
    Please let me know if you need more information.
    Thanks
    Ram
    Edited by: ram on Oct 19, 2008 2:11 PM
    Edited by: ram on Oct 19, 2008 2:12 PM

    We using the procedure to insert and update. Procedure will called to update or insert only one record at a time from XX databse to YY database.
    We are not using SQL * PLUS for this operation.
    Thanks
    Ram

  • ORA-22835: buffer too small when trying to save pdf file in LONG RAW column

    Hi,
    I get "ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (real : 125695, maximum : 2000)" when i trying to save a 120k pdf file in an Oracle Long Raw column using dotnet 4.0 and Entity FrameWork.
    Dim db As New OracleEntities
    Try
    Dim myEntity = (From e In db.TEXTE _
    Where e.TEXT_ID = txtTextId.Text _
    Select e).Single
    With myEntity
    If txtTextypeId.Text <> "" Then
    .TEXTYPE_ID = txtTextypeId.Text
    Else
    .TEXTYPE_ID = Nothing
    End If
    .TEXT_NUM = txtTextNum.Text
    .TEXT_NAME = txtTextName.Text
    .TEXT_DATE = dtTextDate.SelectedDate
    If DocAdded Then
    .TEXT_DOC = Document
    ElseIf DocDeleted Then
    .TEXT_DOC = Nothing
    End If
    End With
    db.SaveChanges()
    Document is an array of Byte and TEXT_DOC also (mapped to a long row column).
    is it possible to increase the size of the buffer ? how may i do it ?
    Thx in advance.
    Regards.

    Using a custom UPDATE or INSERT stored procedure for LONG RAW column with
    exceed-limit data may still get the following error.
    "ORA-01460: unimplemented or unreasonable conversion requested".
    One option is to use BLOB instead of LONG RAW in your table and regenerate your
    data model from the table. Then using the default UPDATE or INSERT statement
    (created by EF) should work.
    The following will modify your LONG RAW column to BLOB column.
    Disclaimers:
    1. It's irreversible--you cannot modify BLOB back to LONG RAW.
    2. I have not tried that when there are huge data in LONG RAW column.
    So be careful.
    alter table <your_table_name> modify <your_long_raw_type_column> blob;

  • Long Raw Column

    Hi Everybody,
    I am using Oracle 9i ver 9.1 & Developer 6. My requirement is to store documents in the database. For that I have created a Long RAW column in the table where I have to store that. On forms I have made an OLE Container whose OLE Class property is set to "Word.Document.8". When I run the form, everyting goes fine. I insert the record, with word documents, it saves. I cleared the form & when I query it gets back the document, ie I can open it by double clicking it. But, once I exit the screen, run it again & try to query, it fetches all other columns except the OLE container value. I mean when I query it after exiting once & running the screen again, it does not fetch that OLE container base table items value, which it displays if I query it, without exiting, ie, the time when I inserted the document in OLE container, saved it & cleared the screen.
    Anyone having a work around pls, reply.
    Thanks in Advance.
    [email protected]

    Hi,
    Yes the data is getting saved. As, when i clear the screen & then query again it displays the data. At SQL promp, when i qureied the table, it displays on a single "D" as the column values for all the rows, whether I had inserted any value for that row or not. I mean it was displaying "D" in all the rows, though, I have not inserted value in all rows in the Long Raw Column.
    Rgds,
    [email protected]

  • 6i to 9i conversion OLE container stored in a LONG RAW column to BLOB

    I need to automate the migration of data stored in a long raw column to a blob column. The objects were stored in the long raw column using an Oracle Forms 6i OLE container. There is also multiple object types stored in the column, ie (word, excel, images, but mostly pdf's). I have looked at the webutil package but cannot figure out how to read the long raw column since ole containers are obsolete in 9i. I have a lot of records that need migrating and need help.
    Thanks,
    J. Broome
    [email protected]

    It doesn't appear that I am able to attach the PDF files.  Can you supply your email (or I can supply mine) so I can send you the three files:
    1.)  A good PDF (manually extracted from our old application)
    2.)  Dump of the same PDF file (includes header/footer info)
    3.)  A partially fixed PDF file (but some of the pictures / pages are cut off - specifically pages 3,5,9,10,12,14)
    The way that we have tried to fix the file (in example 3 above) is the following:
    a.)  Find the First Occurrence of "%PDF-"
    b.)  Find the Last Occurrence of "%%EOF"
    c.)  if the first "%PDF-" is found AND the last "%%EOF" is found, then
       i.)  Remove all data before the first %PDF-
       ii.)  Remove all data after the last %%EOF
    Let me know if you need any other information.
    Thanks,
    Mike

  • Getting the contents of a LONG RAW column

    Hi, I'm using Oracle 8.1.7 with JDK 1.4.0, and I've got a dilemma. I have a table that has several columns, one column is a LONG RAW, the rest are just NUMBER or VARCHAR2. I need to transer the contents of particular rows to another table with the same structure. I've got a query the gets the correct rows, and I create and use a ResultSet to getInt(), getString(), and set the parameters of a PreparedStatement. Here's my problem, when I try to do a getBytes() on the LONG RAW column, it says "Stream already closed."
    I was able to get around this in the past by just doing another query where the only column I selected was the LONG RAW column. Then it would let me do the getBytes(). Unfortunately, besides being inefficient, it is not possible to have 2 queries any longer. I was reading a little about this in the documentation, but I couldn't get a very good feel for it. Is there a way I can do one query and select all the rows, and still be able to pull out that data? Is there anything I'm missing? It seems like it's harder than it should be. Any advice? Thanks!
    Tobin Juday

    OK, I may have spoken too soon. I still seem to have the problem. Here's a chunk of my code, am I missing something dumb? Thank you...
    resultSet1 = query1.getResultSet();
    insert = conn.prepareStatement("INSERT....?,?,?)");
    while (resultSet1.next())
    insert.setBytes(23,resultSet1.getBytes("progtxt"));
    insert.setInt(1, version);
    insert.executeUpdate();
    }

  • Problems with LONG RAW column

    We have a LONG RAW column.
    JDev mapped it to Raw and LONGVARBINARY as SQL type.
    Reading data (even huge amounts) works alright, but when we try to insert or update we get:
    Data size bigger than max size for this type
    I did some reading on the internet and found that I had to stream data into JDBC which Raw apparently cannot handle.
    So how can I solve this?
    And please, don't just write "Create a domain". I tried. It's not that easy for me. It should be a bit more specific.
    Thanks in advance!
    Sascha

    You not only have to create a Domain but also implement either BlobDomainInterface or one of it's subclassed interfaces.
    See oracle.jbo.domain.BlobDomainInterface (source in bc4jdomorcl-src.zip) for an example of how various interface methods are implemented.
    When a domain implements BlobDomainInterface, it's called during load/save Entity data to setup it's transaction context (if it needs to during load) and to save it's content into the db using the given transaction context.
    These interfaces are written with the assumption that there's an oracle.sql.* class that knows how to use transaction to fetch data using SQL-locator objects. In this case I believe you will need to extend the domain from oracle.sql.RAW class.

  • Copying Long Raw Column Data to another table

    hi everyone,
    i am trying to Copy Long Raw Column Data to another table in the same schema. this is the situation
    Table A (col1 number,col2 long raw) with 100 records
    Table B (col1 number,col2 long raw) with 0 records
    now i want to copy col2 of the table A into the column 2 of the table B. but long raw data cant be retrieved in a select statement so is there any specific procedure that will copy long raw data or there is any simple way.
    i will be really grateful for anybody's help.
    thanx
    shakeel

    Dust off that old SQL*PLUS command "COPY" ...
    create table tablea (col1 number,col2 long raw)
    insert into tablea values (1, testrawio.chartoraw('this is line one'));
    insert into tablea values (2, testrawio.chartoraw('this is line two'));
    insert into tablea values (3, testrawio.chartoraw('this is line three'));
    create table tableb (col1 number,col2 long raw)
    copy from scott/tiger@larry insert tableb (col1, col2) using select col1, col2 from tablea
    Array fetch/bind size is 15. (arraysize is 15)
    Will commit when done. (copycommit is 0)
    Maximum long size is 80. (long is 80)
       3 rows selected from scott@tiger.
       3 rows inserted into TABLEB.
       3 rows committed into TABLEB at DEFAULT HOST connection.
    SQL>Now to prove it has worked :
    begin
       for lr in (select col1, col2 from tableb)
       loop
          dbms_output.put_line('col1 = '||lr.col1||
                               ' and col2 contains long raw equivalent of '||testrawio.rawtochar(lr.col2));
       end loop;
    end;
    col1 = 1 and col2 contains long raw equivalent of this is line one
    col1 = 2 and col2 contains long raw equivalent of this is line two
    col1 = 3 and col2 contains long raw equivalent of this is line three
    PL/SQL procedure successfully completed.
    SQL> Note : In order to load some test data and prove the method works I made use of a package called "testrawio" located at http://www.classicity.com/oracle/htdocs/forums/ClsyForumID125/7.html
    AMM

Maybe you are looking for

  • On my iPad mini it wont let me download certain apps

    it will let me download some but then for others it doesn't even have the button to download it, how can i fix this?

  • How to track EM usage pattern in a fixed time interval?

    Hi, all. I am trying to get an idea of how much EM our system is using at different time during the day in order to find out the EM usage pattern on the ECC6.0 system. From ST02, I only see the current usage and max usage. But there is no history on

  • TS2662 My keyboard will pair with my iPad but will not pair with my MAC...any ideas?

    I have had my iMac for 2 years now...I have never had a problem pairing my keyboard.  The batteries died in my keyboard so I changed them and now I can't get the keyboard to pair to my iMac.  I know the keyboard is fine and the batteries work because

  • Pricing help

    hello guys, Powerbook G4 15" 1 Ghz 2 GB RAM 60 GB HDD SuperDrive Backlit Keyboard i need some pricing help for the above product. thinking of selling it and getting a macbook. any idea how much it would go for?

  • Asset master Error in LSMW

    Hi All, I am uploading assets for a new company purchased by us in company code 2222, which uploading the data by using lsmw we are getting the following error message. We checked in customization that there is a date mentioned in legacy transfer dat