-- SQL und PL/SQL -- Anlegen von einer Tabelle für die Metadaten der Dokumente in FILE_DATASTORE Format -- und einer Tabelle als entsprechends Beckup für die gelöschten Datensätze. -- anlegen des Index vom Typ CTXSYS.CONTEXT -- Procedure put_file speichert die Daten des Dokuments in die Tabelle. -- Procedure history löscht die Daten aus der Tabelle mein_doc und schreibt sie in die Tabelle mein_doc_h. -- Dieses Script kann unter den Bedingungen der GPL verwendet werden. -- Copyright (C) 2004 Badran Farwati DROP TABLE mein_doc; DROP TABLE mein_doc_h; DROP SEQUENCE mein_doc_seq; DROP INDEX mein_doc_idx; CREATE TABLE mein_doc ( id NUMBER, file_name VARCHAR2(255), user_file_name VARCHAR2(255), upload_datum VARCHAR2(10), titel VARCHAR2(255), autor VARCHAR2(255), beschreibung VARCHAR2(255), groesse VARCHAR2(20), mime VARCHAR2(50), inhalt VARCHAR2(255), CONSTRAINT doc_pk PRIMARY KEY (id) ); create table mein_doc_h ( id NUMBER, file_name VARCHAR2(255), user_file_name VARCHAR2(255), upload_datum VARCHAR2(10), titel VARCHAR2(255), autor VARCHAR2(255), beschreibung VARCHAR2(255), groesse VARCHAR2(20), mime VARCHAR2(50) ); CREATE SEQUENCE mein_doc_seq; begin ctx_ddl.drop_preference('mein_doc'); end; / declare mein_doc varchar2(10); begin CTX_DDL.Create_preference('mein_doc','file_datastore'); end; / CREATE INDEX mein_doc_idx ON mein_doc(inhalt) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('DATASTORE mein_doc SYNC(ON COMMIT)'); CREATE OR REPLACE PROCEDURE history ( p_id IN mein_doc.id%TYPE ) as begin insert into mein_doc_h select id, file_name, user_file_name, upload_datum, titel, autor, beschreibung, groesse, mime from mein_doc where id = p_id; delete from mein_doc where id = p_id; commit; end; /