90 likes | 204 Views
Oracle inter Media Audio. Vortrag für das Seminar „Oracle Zusatzoptionen“ Chris Haußmann. Inhalt. Oracle-Directories Oracle-Installation an der HSA Der Datentyp ORDAudio Import einer Musikdatei Zugriff auf die Daten des importierten Musikstücks. Oracle Directories.
E N D
Oracle interMedia Audio Vortrag für das Seminar „Oracle Zusatzoptionen“ Chris Haußmann
Inhalt • Oracle-Directories • Oracle-Installation an der HSA • Der Datentyp ORDAudio • Import einer Musikdatei • Zugriff auf die Daten des importierten Musikstücks
Oracle Directories • Verweis auf Pfad im Betriebssystem • ermöglicht Zugriff auf Inhalt des Pfades über Oracle • muß dem Server bekannt sein, nicht dem Client • CREATE OR REPLACE DIRECTORY directory_name AS 'pfad'; • Zugriffsrechte in Oracle einstellbar, unabhängig vom Betriebssystem • GRANT READ ON DIRECTORY directory_name TO user_name • GRANT WRITE ON DIRECTORY directory_name TO user_name
Oracle-Installation an der HSA Server mit OCFS Oracle Server 1 Oracle Server 2 Oracle Serveranwendung Client
Der Datentyp ORDAudio • abgeleitet von ORDSys • Datenbanktyp für Audio-Objekte • enthält Methoden zum Verwalten der Audiodaten • nimmt Metadaten der Audio-Objekte auf
Tabelle für Audiodaten • CREATE TABLE songs( songID INTEGER, songsource ORDSys.ORDAudio);/ • INSERT INTO songs VALUES( 0, ORDSYS.ORDAudio.init());
Import einer Musikdatei • DECLARE audioObj ORDSYS.ORDAUDIO; ctx RAW(4000) := NULL;BEGIN SELECT S.songSource INTO audioObj FROM SongsTable S WHERE S.songId =0 FOR UPDATE; audioObj.setSource('FILE', 'directory_name', 'datei_name'); audioObj.setMimeType('audio/basic'); audioObj.import(ctx); audioObj.setProperties(ctx); UPDATE SongsTable S SET S.songSource = audioObj WHERE S.songId = '00'; COMMIT;END;/
Zugriff auf die Daten des importierten Musikstücks • create or replace procedure readaudio as obj ORDSYS.ORDAudio; buffer RAW (32767); numBytes BINARY_INTEGER := 32767; startpos integer := 1; read_cnt integer := 1; ctx RAW(4000) := NULL;BEGIN Select audio into obj from audtable where id = 1; LOOP obj.readFromSource(ctx,startPos,numBytes,buffer);startpos := startpos + numBytes; read_cnt := read_cnt + 1; END LOOP;END; • /
Quellen • Oracle interMedia Audio, Image, and Video User's Guide and Reference • Poolbetreuer • http://www-itec.uni-klu.ac.at/~harald/mm04/MMDBprodukte.ppt • http://www.psoug.org/reference/intermedia_a.html • http://www.psoug.org/reference/utl_file.html