0 Replies Latest reply: Jan 21, 2011 1:53 AM by 833125 RSS

    ORDDOC

    833125
      I would like to get some properties of .doc or .txt files. Here is my code:

      create table autorzy
      (
      aut_id NUMBER(10) PRIMARY KEY,
      nazwa VARCHAR2(15) NOT NULL
      );
      commit;

      -- drop table przepisy;
      create table przepisy
      (
      prze_id NUMBER(15) PRIMARY KEY,
      autor NUMBER(10) REFERENCES autorzy(aut_id) NOT NULL,
      nazwa_pliku VARCHAR2(50) NOT NULL,
      przepis ORDDoc
      );
      commit;

      insert into autorzy (aut_id, nazwa) values (1,'Retrose');
      insert into autorzy (aut_id, nazwa) values (2,'tulipan');
      insert into autorzy (aut_id, nazwa) values (3,'Opolanka');
      insert into autorzy (aut_id, nazwa) values (4,'renigliwice');
      insert into autorzy (aut_id, nazwa) values (5,'novijka');
      insert into autorzy (aut_id, nazwa) values (6,'Dorota');
      insert into autorzy (aut_id, nazwa) values (7,'Izaa');
      insert into autorzy (aut_id, nazwa) values (8,'Edyta Rosner');
      insert into autorzy (aut_id, nazwa) values (9,'grumko');
      insert into autorzy (aut_id, nazwa) values (10,'krokodyl');


      select * from przepisy;

      declare
      dokument ORDSYS.ORDDoc := NULL;
      ctx RAW(64) := NULL;
      row_id urowid;
      BEGIN
      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (1,1,'Cukinia_z_miesem.txt', ORDDoc.init('FILE','KNIGA','Cukinia_z_miesem.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (2,2,'Kaczka_domowa.doc', ORDDoc.init('FILE','KNIGA','Kaczka_domowa.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (3,2,'Krupnik_polski.txt', ORDDoc.init('FILE','KNIGA','Krupnik_polski.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (4,1,'Kurczak_pieczony.doc', ORDDoc.init('FILE','KNIGA','Kurczak_pieczony.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (5,7,'Kurczak_z_warzywami.doc', ORDDoc.init('FILE','KNIGA','Kurczak_z_warzywami.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (6,3,'Lukier_do_rogalikow.txt', ORDDoc.init('FILE','KNIGA','Lukier_do_rogalikow.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (7,4,'Pieczen_z_boczku.txt', ORDDoc.init('FILE','KNIGA','Pieczen_z_boczku.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (8,7,'Piersi_kurze.doc', ORDDoc.init('FILE','KNIGA','Piersi_kurze.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (9,7,'Piersi_z_boczkiem.doc', ORDDoc.init('FILE','KNIGA','Piersi_z_boczkiem.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (10,8,'Poledwiczki_wieprzowe.doc', ORDDoc.init('FILE','KNIGA','Poledwiczki_wieprzowe.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (11,5,'Salatka_salsa.txt', ORDDoc.init('FILE','KNIGA','Salatka_salsa.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (12,6,'Salatka_sylwestrowa.txt', ORDDoc.init('FILE','KNIGA','Salatka_sylwestrowa.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (13,9,'Salatka_z_lososia.doc', ORDDoc.init('FILE','KNIGA','Salatka_z_lososia.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (14,7,'Zrazy_wolowe.txt', ORDDoc.init('FILE','KNIGA','Zrazy_wolowe.txt'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;

      INSERT INTO przepisy (prze_id, autor, nazwa_pliku, przepis)
      VALUES (15,10,'Zrazy_zawijane.doc', ORDDoc.init('FILE','KNIGA','Zrazy_zawijane.doc'))
      RETURNING przepis,rowid INTO dokument, row_id;
      dokument.import(ctx,false);
      UPDATE przepisy SET przepis = dokument WHERE rowid = row_id;
      COMMIT;
      END;



      CREATE OR REPLACE PROCEDURE wlasciwosci
      AS
      dokument ORDSYS.ORDDOC;
      ctx RAW(64) :=NULL;
      BEGIN
      SELECT przepis INTO dokument FROM przepisy WHERE prze_id = 1 FOR UPDATE;
      dokument.setProperties(ctx,false);
      DBMS_OUTPUT.PUT_LINE('Format pliku: ' || dokument.getformat());
      DBMS_OUTPUT.PUT_LINE('Rozmiar dokumentu: ' || dokument.getContentlength());
      DBMS_OUTPUT.put_line('Typ Mime: ' || dokument.getMimeType());
      UPDATE przepisy set przepis = dokument WHERE prze_id = 1;
      COMMIT;
      EXCEPTION
      WHEN ORDSYS.ORDDocExceptions.DOC_PLUGIN_EXCEPTION THEN
      dbms_output.put_line('DOC PLUGIN EXCEPTION caught');
      WHEN OTHERS THEN
      dbms_output.put_line('EXCEPTION caught');
      END;
      /

      set serveroutput on;
      execute wlasciwosci;

      -----

      procedure wlasciwosci compile with no error, but when i execute it, i all the time get exception: "DOC PLUGIN EXCEPTION caught". I tried to change id o file into .doc (so prze_id = 2), but still situation is the same.

      i would like those properties to make some select's, for example: having counted all file sizes or how many is files with .txt and how many is with .doc.
      The only thing which works for me is:

      declare
      dokument ORDSYS.ORDDOC;
      ctx RAW(64) :=NULL;
      BEGIN
      select przepis INTO dokument from Przepisy where prze_id = 2 for update;
      dokument.importFrom(ctx,'FILE','KNIGA','Kaczka_domowa.doc',FALSE);
      dbms_output.put_line('Dlugosc: ' ||TO_CHAR(dbms_lob.getlength(dokument.getContent())));
      dbms_output.put_line(dokument.getSource());
      UPDATE przepisy set przepis = dokument where prze_id = 2;
      COMMIT;
      END;

      but it is only for file size and only for one file (when i make for i 1..15 loop and put in prze_id = i, i do not know what should i put instead of file name, also i ?).