Hello - I am trying to export the "DOCCONTB' table but it stops after approx 1/4 way through. Environment is CEMR 6.1 on Oracle 10.1.0.5 . The data dictionary describes what data is stored in "DOCCONTB": (Each row in the DOCCONTB table describes the contribution made to a document by a specific user.)
Listed below are the 3 CLOB data descriptions:
OLD_VAL - Stores the old value, when a tracked value is changed.
NEW_VAL - Stores the new value for data being tracked.
LINKTONOTE - A string representing a placeholder in the document. When the "Show contribution text" option is enabled, this link points to where the contribution log text should be displayed in the chart note.
Based on the descriptions, this appears to be an audit log.
DBAs have determined there is likely a corrupt record that will not allow complete export.
I have 2 questions someone can hopefully help answer:
- Is there any particular method that can be employed to successfully complete the export?
- How critical is it if this type data is inaccessible? (HIPAA requirement, etc?)
Thank you for any insight!
Are you trying to export all records? I wonder if you are filling either your temporary allocation of disk space or the real available space on a disk drive. I have had reports crash if my SELECT logic is not correct and the report is attempting to write too many data records.
The table is also used in a note to determine who signed/appended to it and when. For example, if you look at an office visit note and you see "Electronically Signed By John Doe MD", that text is not in the text field in the note itself, it is generated based on the data from this table.
From what I have found, there are 5 different CONTB_ACTIONS that add text to the note. Here is the text based on those values (from a program I wrote to recreate a note as an rtf file)
Case 3
$action = "Appended by "
Case 6
$action = "Electronically Signed by "
Case 7
$action = "Electronically Signed by "
Case 8
$action = "Electronically Signed by "
Case 11
$action = "Imported from clinical messaging by "
Are you sure that you are not running into some sort of buffer size issue when exporting the data? It is potentially a huge table (ours has 93million records in it)
Have you tried to see if you can create a new table based on data from that table? (create table new_table as select * from doccontb) If you can do that I would assume your data is not corrupt.
Yes, trying to export all records and have verified there is enough disk space (that was one area checked)
rwilliams - really appreciate the detailed feedback on the contents of the table and will try your recommendation to create new table based on data from doccontb table. i'll report back results. Thanks!
rwilliams - I can't thank you enough for your detailed and insightful feedback. it provided a new direction to export as seen below and, in turn, complete the export successfully. no augmentation to Oracle instance or database or any buffer parameters. Looks like we have 85 million records in that table. many thanks!
exp user/pass tables=doccontb FILE=doccontb_0.DMP LOG=doccontb_0.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "0"\"
exp user/pass tables=doccontb FILE=doccontb_1.DMP LOG=doccontb_1.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "1"\"
exp user/pass tables=doccontb FILE=doccontb_2.DMP LOG=doccontb_2.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "2"\"
exp user/pass tables=doccontb FILE=doccontb_3.DMP LOG=doccontb_3.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "3"\"
exp user/pass tables=doccontb FILE=doccontb_4.DMP LOG=doccontb_4.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "4"\"
exp user/pass tables=doccontb FILE=doccontb_5.DMP LOG=doccontb_5.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "5"\"
exp user/pass tables=doccontb FILE=doccontb_6.DMP LOG=doccontb_6.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "6"\"
exp user/pass tables=doccontb FILE=doccontb_7.DMP LOG=doccontb_7.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "7"\"
exp user/pass tables=doccontb FILE=doccontb_8.DMP LOG=doccontb_8.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "8"\"
exp user/pass tables=doccontb FILE=doccontb_9.DMP LOG=doccontb_9.LOG query=\"where SUBSTR(TO_CHAR(CONTBID),-1) = "9"\"