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

So verwenden Sie crontab zum Hinzufügen geplanter Aufgaben in Linux

Vorwort Das Linux-System wird durch den Systemdie...

HTML-Tabellen-Tag-Tutorial (46): Tabellenfußzeilen-Tag

Mit dem Tag <tfoot> wird der Stil der Tabel...

Zwei Möglichkeiten, den Zeichensatz der HTML-Seite anzugeben

1. Zwei Möglichkeiten, den Zeichensatz der HTML-S...

10 wichtige Unterschiede zwischen HTML5 und HTML4

HTML5 ist die nächste Version des HTML-Standards....

Details zum Vue Page Stack Manager

Inhaltsverzeichnis 2. Bewährte Methoden 2.1 Am Le...

...

MySQL-Daemon konnte nicht gestartet werden – Fehlerlösung

MySQL-Daemon konnte nicht gestartet werden – Fehl...

Detaillierte Erklärung des Nginx Reverse-Proxy-Beispiels

1. Reverse-Proxy-Beispiel 1 1. Erzielen Sie den E...

WeChat-Applet implementiert Taschenrechnerfunktion

WeChat-Miniprogramme erfreuen sich immer größerer...

Beispiel für die Implementierung einer kaskadierenden MySQL-Replikation

Bei der sogenannten kaskadierenden Replikation sy...