SQL-Fuzzy-Abfragebericht: ORA-00909: Lösung: Ungültige Anzahl von Parametern

SQL-Fuzzy-Abfragebericht: ORA-00909: Lösung: Ungültige Anzahl von Parametern

Bei Verwendung einer Oracle-Datenbank für Fuzzy-Abfragen

Der Konsolenfehler wird in der folgenden Abbildung dargestellt:

Der Grund ist, dass ich zu schnell getippt habe und die Grammatik falsch war.

Die korrekte Schreibweise lautet

pd.code wie concat(concat('%',#{keyword}),'%')

java.sql.SQLSyntaxErrorException: ORA-00909: ungültige Anzahl von Parametern

Diese Ausnahme ist mir bei der Verwendung von MyBatis für Fuzzy-Abfragen mit mehreren Parametern begegnet. Ich habe mir das Druckprotokoll angesehen und festgestellt, dass die Ausnahme nach der Vorkompilierung und beim Einfügen tatsächlicher Parameter aufgetreten ist.

==> Vorbereitung: select role_id, role_name, note from t_role where role_name like concat('%', ?, '%') und note like concat('%', ?, '%')
13.12.2018 20:24:28,567 DEBUG [com.ss.learn.chapter3.mapper.RoleMapper.getRolesByIdAndNote] - ==> Parameter: 1 (Zeichenfolge), 1 (Zeichenfolge)

Ausnahmemeldung: Die Anzahl der Parameter ist ungültig. Die SQL-Anweisung wurde geprüft

Wählen Sie role_id, role_name, note aus t_role
wobei role_name wie concat('%', ?, '%') und note wie concat('%', ?, '%') ist.

Ich habe festgestellt, dass das Problem bei concat auftrat. concat ist eine Funktion, die zwei Zeichenfolgen verbindet. Hier sind drei verbunden. Ändern Sie das SQL in zwei verschachtelte Concats.

<select id="getRolesByIdAndNote" parameterType="map" resultType="Rolle">
        Wählen Sie role_id, role_name, note aus t_role 
        wobei Rollenname wie concat(concat('%', #{roleName}), '%') ist.
        und notieren Sie wie concat(concat('%', #{note}), '%')
    </Auswählen>

Zusammenfassen

Die Operation war erfolgreich! Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden!

Das könnte Sie auch interessieren:
  • Informationen zur SQL-Fuzzy-Abfrage
  • So behandeln Sie Sonderzeichen in Fuzzy-Abfragen in SqlServer
  • Zusammenfassung gängiger Methoden der SQL Server-Fuzzy-Abfrage
  • Was tun, wenn Mybatis beim Eingeben chinesischer Zeichen mithilfe der MySQL-Fuzzy-Abfrage keine Ergebnisse abrufen kann?

<<:  Docker erstellt Redis5.0 und mountet Daten

>>:  Detaillierte Erklärung des Flex-Layouts in CSS

Artikel empfehlen

Verwenden Sie CSS, um zwischen dem Dunkelmodus und dem Hellmodus zu wechseln

In der fünften Ausgabe von Web Skills wird ausdrü...

Detaillierte Erläuterung der MySQL-Hochverfügbarkeitsarchitektur

Inhaltsverzeichnis Einführung MySQL-Hochverfügbar...

So verwenden Sie nginx zum Konfigurieren des Zugriffs auf wgcloud

Die Nginx-Konfiguration ist wie folgt: Wie http:/...

Detaillierte Erläuterung der Wissenspunkte zur asynchronen Programmierung in nodejs

Einführung Weil JavaScript standardmäßig ein Thre...

Spezifische Verwendung des Linux-Befehls „dirname“

01. Befehlsübersicht dirname - entfernt nicht zu ...

So implementieren Sie Reaktionsfähigkeit beim Lernen des Vue-Quellcodes

Inhaltsverzeichnis Vorwort 1. Schlüsselelemente e...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

Schritte zum Ändern des MySQL-Datenbankdatendateipfads unter Linux

Nach der Installation der MySQL-Datenbank mit der...

Detaillierte Erklärung des MySQL-Datenbankindex

Inhaltsverzeichnis 1. Einführung in den MySQL-Ind...

Eine kurze Analyse der Verwendung von Rahmen- und Anzeigeattributen in CSS

Einführung in Rahmeneigenschaften border -Eigensc...