Consider the following:

You create a table space/data file for a table. You insert data into the table and this table has an index.

When you delete the data, it is possible that the data is not actually deleted from the data file. I wrote the program

#include <stdio.h>

int main()
   FILE *file = fopen("/some/file/name", "r");
   int ch;
   while ((ch = fgetc(file)) != EOF) {
     if (isprint(ch)) printf("%c", ch);

This will display any printable characters. I have found that sometimes the data still exists in the data file (on the OS level)

Is there a way of getting Oracle to zero this data?


The URL to the posted question does not solve the problem - as stated in one of the answers - This wouldn't work with indexes since updates are translated to delete+insert in a btree index.*

closed as off-topic by mustaccio, Marcello Miorelli, John Eisbrener, Gaius, kevinsky Jul 12 at 14:39

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Too localized - this could be because your code has a typo, basic error, or is not relevant to most of our audience. Consider revising your question so that it appeals to a broader audience. As it stands, the question is unlikely to help other users (regarding typo questions, see this meta question for background)." – mustaccio, Marcello Miorelli, Gaius
If this question can be reworded to fit the rules in the help center, please edit the question.


Where I work, we had this exact issue. I wrote code that read metadata tables and redacted information for people or companies on request. I also logged the id value for every person that we redact. Hence if we do bring back an old database we have the option of taking that metadata and redacting it in any backup that we restore. It would not be practical to bring back every backup, restore, redact people who want to be redacted, do a new backup and send the backup back offsite. We can think about the retention that were need for offsite backups. Ideally in the future we will separate the PII of people from the financial data that we need to keep longer. thus it would be easier to redact some data, but keep the data that we really need. You need more than a single answer. You need to build a framework on how to redact data and still know which data was redacted in case it needs to be redacted again.

Not the answer you're looking for? Browse other questions tagged or ask your own question.