In einem SQL-Trigger in einer WHERE-Anweisung möchte ich ein Datenfeld (numeric(6, 0)) mit den ersten 6 Stellen eines CHAR-Feldes vergleichen (dessen ersten 6 Stellen Ziffern sind).

Die Abfrage lautet:
.. where aiqual = int(substring(neu.ararti, 1, 6))

oder in einem anderen Versuch
.. where aiqual = decimal(substring(neu.arti, 1, 6), 6, 0)

Beide Versionen funktionieren.

Im JOBLOG wird allerdings jedesmal folgendes gesagt:
- Auswahlfeldern anderen Attributen zugeordnet
- Datentyp, Anzahl Stellen, Dezimalstelle oder Feldlänge
geändert in: AIQUAL damit das Feld vrglichen werden konnte
- Es kann kein Zugriffspfad zur Verarbeitung der Auswahl
verwendet werden, da kein Schlüsselfeld über entspr.
Attribute verfügt

Ich habe nun Bedenken, dass im Echtbetrieb eine schlechte Performance entstehen kann wg. fehlendem Zugriffspfad.

Kann die Vergleichsabfrage anders gestaltet werden ?

mfg Ludger