F98950 and decoding the blob

SULLY1

VIP Member
In the user override table F98850 there is a BLOB column called UOBINDTA that contains the details of a particular user grid format. Has anyone ever decoded or decompiled this BLOB? We need to know its structure for the OnBase Application Enabler(Imaging Software)

Patty
 
Here is the way to decode the blob in MS-SQL2000 (sorry, only for the 8000 first bytes of the blob since varchar size is limited to 8000) and a sample of a blob in a GD record (that is the grid format itself) after decoding. I don't know Oracle enough to tell you how to do that with it.
select cast(substring(uobindta,1,8000) as varchar(8000)) from pd7333.f98950 where ...
 

Attachments

  • 58780-GD.txt
    7.4 KB · Views: 179
Patty,

I can't remember the service pack precisely. But I believe after SP16 the BLOB is actually an XML format. So decoding it will not be particularly hard. I guess the difficulty will depend on which tool or programming interface you will use to access the BLOB. I have actually played with editing the XML in the blob directly and my changes are reflected immediately in the grid's appearance.

Regards,
 
Our DBA is asking about a LOB in our production F98950 table. The interesting thing about this 28GB LOB is it was created on July 13th, a week before we actually upgraded production. Our QA Central Objects were copied to the production database the week prior to our 8.9 Go-Live...so I can't say the users logging in created the extra large production LOB, but I have a hunch the file is growing and has something to do with the large number of users we support. See comments from Oracle DBA below:

I was noticing a significant size difference between QA9 and PD9 tablespaces. PD9T is 37GB where QA9T is about 13GB. I've discovered a LOB Segment stored in production PD9.SYS_LOB0000356740C00009$$ 28790 MBYTES

I haven't worked much with lobs,blob, etc. I do not know what is in the lob. It was created July 13, 2004 at 22:57.

I can research to try to view the lob's contents but thought I'd check with you to see if you had any insight. This lob doesn't appear to exist in the other environments.

Ok, it looks like the blob is associated with table f98950 - column name UOBINDTA. See if you can find anything out about it.
 
This column contains the user override specifications. These days that information is stored in XML and if extracted from the BLOB and displayed as text they will be human-readable.

28 GB for the LOB segment associated with F98950 is definitely excessive. Offhand I am not sure what processing is performed on the F98950 during an upgrade. Do I understand you correctly, your QA central objects were upgraded to 8.9 as well? Maybe the upgrade of the F98950 went into a loop of some sort and filled the blob with garbage.

Normally whenever a long binary column's data exceeds 4K it is stored in a lob segment instead of the record itself.

I am not on an Oracle site at the moment so I can't check the syntax but if you make use of this PL/SQL function you should be able to retrieve the length of UOBINDTA for all the records in your QA.F98950 table and then sort descending and figure out if it is just one or a few giant records.

dbms_lob.getlength:)p_blob)

Hope this helps.

Regards,
 
Thanks. I will try that. Yes, QA Central Objects were upgraded and this is what made it's way into production. We then built our first full production package based on PD9 Central Objects after go-live.
 
Back
Top