Heim >Datenbank >Oracle >Wie stellt Oracle fest, ob Daten einen numerischen Typ haben?

Wie stellt Oracle fest, ob Daten einen numerischen Typ haben?

WBOY
WBOYOriginal
2022-04-07 11:27:5822573Durchsuche

Methode: 1. Verwenden Sie „trim(translate(column,‘0123456789‘,‘‘)) is NULL;“ um zu bestimmen, ob die Daten eine Zahl sind 2. Verwenden Sie „regexp_like(column,‘^[0-9]“ +[0 -9]$');“ bestimmen, ob es sich bei den Daten um eine Zahl handelt.

Wie stellt Oracle fest, ob Daten einen numerischen Typ haben?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Wie bestimmt Oracle, ob es sich bei den Daten um einen numerischen Typ handelt?

select*from table name where In unserer täglichen Entwicklung können wir auf ein solches Problem stoßen, nämlich festzustellen, ob eine bestimmte Spalte vollständig aus Zahlen besteht Wenn Sie wissen, dass Oracle uns keine solche vorgefertigte Funktion zur Verfügung stellt, habe ich aufgrund meiner Erfahrung zwei effektive Methoden zusammengefasst (Spaltenname: Spalte, Tabellenname: Tabelle):

1 Verwenden Sie die Funktion „Trimmen + Übersetzen“:

Der Code lautet wie folgt:

select * from table where trim(translate(column,'0123456789',' ')) is NULL;

Hier ist zu beachten: Der dritte Parameter der Übersetzungsfunktion ist ein Leerzeichen, nicht '', denn wenn der dritte Parameter von Translate leer ist, wird immer '' zurückgegeben Daher ist eine Filterung für rein numerische Zwecke nicht möglich.

Auf diese Weise werden alle Zahlen in Leerzeichen umgewandelt. Wenn sie alle aus Zahlen bestehen, sind sie nach dem Trimmen natürlich leer, wodurch das oben genannte Ziel erreicht wird. Wenn Sie leere Elemente ausschließen möchten, können Sie natürlich Folgendes schreiben:

Der Code lautet wie folgt:

select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。

2. Verwenden Sie die Funktion regexp_like:

Der Code lautet wie folgt:

select * from table where regexp_like(column,'^[0-9]+[0-9]$');

Was soll Hierbei ist zu beachten, dass die Funktion regexp_like nicht in allen Oracle-Versionen verfügbar ist. Kann in allen verwendet werden.

regexp_like ist eine der vier Funktionen, die Oracle als reguläre Ausdrücke unterstützt: regexp_like, regexp_replace, regexp_instr, regexp_substr. Weitere Informationen hierzu finden Sie in den entsprechenden Dokumenten.

Empfohlenes Tutorial: „Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWie stellt Oracle fest, ob Daten einen numerischen Typ haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn