Wortlänge (PL/SQL)
Nicht immer bietet das Design genügend Platz, um lange Wörter darzustellen. Diese Funktion erlauf es bereits in der Abfrage, Datensätze mit zu langen Wörtern auszuschließen.
create or replace function wortlaenge (soriginal in varchar2) return number is
nlength number(10) := 0;
nposstart number(10) := 0;
nposende number(10) := 1;
begin
soriginal := trim(replace(replace(soriginal,'-','- '),'/','/ '));
while nposende > 0 loop
nposende := instr(soriginal,strenner,nposstart + 1);
if nlength < nposende - nposstart then
nlength := nposende - nposstart - 1;
end if;
nposstart := nposende;
end loop;
return nlength;
end wortlaenge;
/
Der Zugriff erfolgt so:
SELECT textfeld FROM tabelle WHERE wortlaenge(textfeld) < 20;
Angenommen, ein Datensatz in "textfeld" würde z.B. den Wert "Extremlangesnervigeswort" haben, würde dieser Datensatz nicht selektiert. Am Anfang werden "-" und "/" durch ein Leerzeichen ergänzt. Macht man selbiges später bei der Ausgabe, hat nämlich auch HTML hier die Möglichkeit, umzubrechen.
