-- ============================================================================= -- Bereinigt umschließende Markdown-Code-Fences (```markdown ... ```) aus der -- Spalte TRANSLATED_TEXT in DC_PROJECT_DOCUMENTS. -- -- Hintergrund: Das Übersetzungs-Modell hat den Text mal mit, mal ohne Fence -- gespeichert. Der Backend-Code strippt den Fence ab jetzt beim Schreiben; -- dieses Skript bereinigt die bereits vorhandenen Altdatensätze. -- -- Idempotent: Datensätze ohne führenden ``` bleiben unverändert. -- ============================================================================= SET SERVEROUTPUT ON DECLARE v_count PLS_INTEGER := 0; v_text CLOB; v_nl PLS_INTEGER; BEGIN FOR rec IN ( SELECT id, translated_text FROM dc_project_documents WHERE translated_text IS NOT NULL AND LTRIM(translated_text) LIKE '```%' ) LOOP v_text := LTRIM(rec.translated_text); -- Erste Zeile (z. B. ```markdown) entfernen v_nl := INSTR(v_text, CHR(10)); IF v_nl > 0 THEN v_text := SUBSTR(v_text, v_nl + 1); END IF; -- Schließendes ``` am Ende entfernen v_text := RTRIM(v_text); IF SUBSTR(v_text, -3) = '```' THEN v_text := SUBSTR(v_text, 1, LENGTH(v_text) - 3); END IF; v_text := TRIM(v_text); UPDATE dc_project_documents SET translated_text = v_text WHERE id = rec.id; v_count := v_count + 1; END LOOP; COMMIT; DBMS_OUTPUT.PUT_LINE('Bereinigte Datensätze: ' || v_count); END; /