2017-11-14 6 views
-1

Ich stieß auf einen seltsamen Fehler in Oracle SQL. Es meldet mich einen Fehler, der "Ungültige Nummer" anzeigt, obwohl das Feld/die Spalte nicht Nummer ist.SQL ORACLE SELECT WILDCARD Ungültige Nummer

Sie haben eine Ahnung was los ist?

Hier ist die SQL.

Select * from Products where Prod_nm like '%A%'; 

Ich benutze diese selbe SQL-Anweisung für andere Tabellen und bekam keine Fehler.

Vielen Dank im Voraus!

+3

'Prod_nm' muss eine Zahlenspalte sein, keine andere Erklärung für diesen Fehler. –

+0

"Ich verwende dieselbe SQL-Anweisung für andere Tabellen und habe keine Fehler erhalten.". Sie können nicht dieselben SQL-Abfragen für alle Tabellen verwenden und dieselben Ergebnisse erwarten, sofern die Tabellen nicht identisch sind. Können Sie Ihr Schema bereitstellen? –

+1

Leider kommt der Fehler von OP von einem Teil der Abfrage (ein Join), der nicht angegeben wurde. Die tatsächlichen Details sind in den Kommentaren zur Antwort angegeben. Ich stimme zu, diese Frage als "nicht reproduzierbar" abzuschließen. – GolezTrol

Antwort

0

Wie Sie können read here:

Ein ORA-01722 („ungültige Nummer“) Fehler tritt auf, wenn versucht wird, eine Zeichenkette in eine Zahl zu konvertieren, und die Zeichenfolge kann nicht in einen gültigen umgewandelt werden Anzahl ... Wenn eine SELECT tun ... prüfen für eine numerische Spalte in eine Zeichenspalte ...

Die Schlussfolgerung verglichen wird, ist, dass Ihre Tabellenspalte Prod_nmeine numerische Spalte sein muss, o Andernfalls wäre diese Fehlermeldung niemals aufgetreten. Überprüfen Sie Ihre Datenbankstruktur.


EDIT

Wie Sie in den Kommentaren erwähnt, ist die Abfrage, die Sie verwenden:

Select * from Products 
Inner join Review 
ON Products.prod_id = Review.prod_id 
where Products.prod_nm like '%A%' 

Ist das Beitreten (mit ON) eine numerischen Säule (Review.prod_id) mit einem varchar Spalte (Products.prod_id), und das ist, wo der Fehler herkommt.

+0

Hi @ koby, Prod_nm ist Varchar2. –

+0

@LexDacs Das ist nicht möglich, bist du 100% sicher? –

+0

Ja, es ist Sir. Eigentlich ist die ursprüngliche Abfrage 'Select * von Produkten Inner join Überprüfung ON Products.prod_id = Review.prod_id wobei Products.prod_nm wie '% A%' –