[PL/SQL] Problem z połączeniem dwóch stringów

0

Mam następujący problem. Napisałem procedurę która ma za zadanie pobrać obiekt typu ORDImage z bazy danych, po czym wygenerować jego miniaturkę oraz zapisać do pliku. Wszystko pięknie mi działa, ale pod warunkiem że plik zapisze pod tą samą nazwą (plik się nadpisuje).

Za zapis do pliku odpowiada ta linijka:

    miniaturka.export(ctx, 'FILE', 'PROJEKT', nazwa_pliku_z); 

Jak dodać np. ciąg: miniaturka_ po czym wstawić normalną nazwę pliku (schemat: miniaturka_nazwa_pliku_z) i zapisać to pod postacią jednego stringu?

CREATE OR REPLACE PROCEDURE zrob_miniaturki
AS
obrazek ORDSYS.ORDImage;
miniaturka ORDSYS.ORDImage;
id_grzyba_z VARCHAR2(40);
nazwa_pliku_z VARCHAR2(40);
nowa_nazwa VARCHAR2(40);
ctx RAW(4000) := NULL;
row_id urowid;
CURSOR kursor_o IS SELECT id_grzyba, nazwa_pliku FROM grzyby;
  BEGIN
  OPEN kursor_o;
  FETCH kursor_o INTO id_grzyba_z, nazwa_pliku_z;
  WHILE kursor_o%FOUND LOOP
    DBMS_OUTPUT.PUT_LINE ('Wczytuję plik o nazwie: ' || nazwa_pliku_z || ' ' || id_grzyba_z);
    SELECT mini_zdjecie INTO miniaturka FROM grzyby WHERE id_grzyba = id_grzyba_z FOR UPDATE of mini_zdjecie;
    UPDATE grzyby SET mini_zdjecie = ORDImage.init() WHERE id_grzyba = id_grzyba_z;
    SELECT zdjecie_grzyba, mini_zdjecie INTO obrazek, miniaturka FROM grzyby WHERE id_grzyba = id_grzyba_z;
    obrazek.processCopy('fixedScale=200 200', miniaturka);
    INSERT INTO temp (obrazek_temp)
      VALUES (miniaturka) RETURNING obrazek_temp, rowid INTO miniaturka, row_id; 
    -- nowa_nazwa := 'miniaturka_';
    miniaturka.export(ctx, 'FILE', 'PROJEKT', nazwa_pliku_z);
    FETCH kursor_o INTO id_grzyba_z, nazwa_pliku_z;
    -- DBMS_OUTPUT.PUT_LINE ('nazwa: ' || nowa_nazwa);
  END LOOP;
  CLOSE kursor_o;
END; 
0

miniaturka.export(ctx, 'FILE', 'PROJEKT', 'miniaturka_' || nazwa_pliku_z);

0

Dzięki wielkie! Pomyśleć że już z tego korzystałem ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1