2017-10-30 3 views
0

Ich versuche, was ich dachte, war eine ziemlich geradlinige SQL-Anweisung. Ich versuche, einen REGEX-Ausdruck zu verwenden, um nur Datensätze mit einem Namen zu erhalten, der nur aus 3 Zahlen besteht.Fehler bei der Verwendung von REGEXP_LIKE mit DB2

Allerdings bekomme ich einen Fehler und ich kann nicht herausfinden, warum. Da es sich um DB2 handelt, gibt es nicht annähernd so viele Beispiele zum Zeichnen (wie zum Beispiel bei Postgres), so dass ich feststecke.

Kann jemand sehen, was los ist?

SELECT 
    ia.ID 
    ,ia.DESCRIPTION 
FROM INVENTORY.ACTIVITIES ia 
WHERE 
    REGEXP_LIKE(ia.NAME, '[0-9]{3}') 

Fehler:

[IBM][CLI Driver][DB2/LINUXX8664] SQL0104N An unexpected token ")" was found following "(ia.NAME,'[0-9]{3}')". Expected tokens may include: "<interval_qualifier>". SQLSTATE=42601.

+0

Laut [dem Handbuch] (https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/c0000767.html?pos= 2) Es gibt keine 'regexp_like' in DB2 –

+0

Es scheint, dass dies in der neuesten Version (11.1) hinzugefügt wurde: http://www.idug.org/p/bl/et/blogaid=605 –

+0

Haben Sie versucht, \ d {3} '? – mauro

Antwort

1

Der Code sollte kompilieren. Es tut aber nicht, was du willst. Sie benötigen Marker für den Anfang und das Ende der Zeichenfolge:

Meine beste Schätzung für Ihren Fehler ist ein versteckter Charakter.

Verwandte Themen