Avatar billede dope Nybegynder
10. maj 2001 - 14:25 Der er 7 kommentarer og
1 løsning

Indsætte BLOb i Oracle 8i, hvordan?

Er der nogle der har nogle færdige løsninger til hvordan man indsætter BLOb i en Oracle 8i database?

Eventuelt bare PL/SQL scriptsforslag som vi selv kan rette til...

Det drejer sig om små text-filer samt små lydfiler på 1 kb. hver.

Avatar billede holdam Nybegynder
10. maj 2001 - 14:46 #1
UNDEFINE filename
UNDEFINE lob_key
SET SERVEROUTPUT ON
DECLARE
  this_blob  BLOB;
  this_bfile BFILE;

BEGIN
  -- bfile initialisation
  this_bfile := BFILENAME(\'tmp\', \'&&filename\');

  IF dbms_lob.fileexists(this_bfile) THEN
    dbms_lob.fileopen(this_bfile, dbms_lob.file_readonly);
    -- file operation

    dbms_lob.loadfromfile(
      this_blob,
      this_bfile,
      dbms_lob.getlength(this_bfile),
      1,
      1);

    INSERT INTO blob_table
      (id, a_blob)
    VALUES
      (&&lob_key, this_blob);
   
    COMMIT;

    dbms_lob.fileclose(fil);   
  ELSE
    dbms_output.put_line(\'File \' || &&filename || \' in directory tmp does not exist\');
  END IF;

EXCEPTION
  WHEN OTHERS THEN
    dbms_output.put_line(SQLCODE || SQLERRM); 
    dbms_lob.filecloseall;
END;
/
UNDEFINE filename
UNDEFINE lob_key
Avatar billede holdam Nybegynder
10. maj 2001 - 14:47 #2
Nå, det skulle egentlig have været et svar og ikke bare en kommentar ;-)
Avatar billede mej Nybegynder
10. maj 2001 - 15:12 #3
Holdam?
Jeg bliver lidt nysgerrig.. hvis nu det hele ligger i et directory ... vil du så hente filerne med UTL_FILE og indsætte dem via et loop?
Avatar billede dope Nybegynder
10. maj 2001 - 15:46 #4
holdam >>
Jeg får kigget på det...
Avatar billede holdam Nybegynder
11. maj 2001 - 08:41 #5
>> mej

Nu er det egentlig bare et lille testscript som kan læse én fil ind i en BLOB. Hvis man har flere filer kan man sagtens lægge et LOOP udenom, og man kan vel også bruge utl_fil til at finde navnene på filerne. Men det er dbms_lob.loadfromfile der læser den enkelte fil; ikke utl_file.
Avatar billede pnielsen Nybegynder
16. maj 2001 - 00:33 #6
holdams løsning kræver at dine lydfiler ligger på serveren...

Hvis du vil gøre det fra clienten, skal du bruge en løsning med OCI.
Jeg har et eksempel et sted, hvis det bliver aktuelt :)

Man kan også bruge oracle-forms og bruge \"read_image_file\"
Avatar billede holdam Nybegynder
16. maj 2001 - 08:25 #7
Lydfilerne skal ikke nødvendigvis ligge på serveren - bare man kan nå dem fra serveren (med NFS, samba eller lignende) kan scriptet bringes til at virke. Men det er rigtigt at hvis filerne ikke kan placeres så serveren kan nå dem, skal der gang i andre værktøjer.
Avatar billede dope Nybegynder
11. juli 2001 - 10:23 #8
Jeg har ikke kunne bruge nogle af de forslag der er indkommet og lukker spørgsmålet.

Mange tak for hjælpen...

/ dope
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester