DBAsupport.com Forums - Powered by vBulletin
Results 1 to 2 of 2
  1. #1
    Join Date
    Oct 2000
    I created a table in which one of the fields was of CLOB datatype.
    When I run select statements from SQL prompt the table is accessible for me. However, when the developer tries in her application to access the table it comes up with an error . The same statements which run perfectly do not run in the Oracle ODBC Test environment.
    I tried changing the CLOB field to a varchar2 and the whole thing works.
    What is to be done for using the table with CLOB datatype?Putting that field in another tablespace- will that help?

  2. #2
    Join Date
    Sep 2000
    I guess u can't acees the CLOB object directy in the front end.As the data is going to be large the front end(ASP or Developer2000 or VB) should read the data in chunks ie in 1024 bytes or so.Also same the case for appending data to the table.Hope i answered say 10%
    Set OraDynasetForLong = OraDatabase.DbCreateDynaset("select
    product_id,product_html,publish_status_id from PRODUCT where Product_id = " &
    cint(lnProdId), &H2&)
    OraDynasetForLong.Fields("product_html").Value = ""
    lnTotalSize = Len(trim(Request.Form("prodhtml")))
    lnChunkSize =1024
    LongData = cStr(Request.Form("prodhtml"))
    'Set number of chunks.
    lnNumChunks = lnTotalSize \ lnChunkSize
    if lnNumChunks < lnChunkSize then
    'Set number of remaining bytes.
    lnRemChunkSize = lnTotalSize Mod lnChunkSize
    For I = 1 To lnNumChunks
    if I = lnNumChunks then
    lnChunkSize = lnRemChunkSize
    end if
    if Request.Form("txtLongDesc") <> "" then
    lsCurChunk = mid(Request.Form("prodhtml"),i*lnChunkSize,lnChunkSize)
    OraDynasetForLong.Fields("product_html").DbAppendChunk (trim(lsCurChunk))
    end if
    end if

    ---selecting fields---

    if Request.QueryString ("MODE") = 1 then ' to modify
    lnProdId = Request.QueryString("ProductID")
    Set OraDynasetForLong = OraDatabase.DbCreateDynaset("select
    from PRODUCT where Product_id = " & cint(lnProdId), &H2&)
    lsPrdName = OraDynasetForLong.Fields("PRODUCT_NAME")
    lsPrdId = OraDynasetForLong.Fields("product_type_id")

    ChunkSize = 256
    liCounter = 0
    CurChunk = OraDynasetForLong.Fields("Product_html").DbGetChunk(liCounter *
    ChunkSize, ChunkSize)
    CurSize = Len(CurChunk) 'Get the length of the current chunk.
    lsLongDesc = lsLongDesc & (Cstr(CurChunk)) 'Write chunk to Page.
    liCounter = liCounter + 1
    Loop Until CurSize < ChunkSize

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Click Here to Expand Forum to Full Width

By using this site, you agree to the Privacy Policy