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

Beispielcode für HTML-Layered-Box-Shadow-Effekt

Schauen wir uns zunächst das Bild an: Heute werde...

Führen Sie die Initialisierungs-SQL aus, wenn Docker MySQL startet

1. Ziehen Sie das Mysql-Image docker pull mysql:5...

Strategie zur Optimierung der Leistung von MySQL-Datenbankabfragen

Optimieren von Abfragen Verwenden der Explain-Anw...

CocosCreator - modulares Lernskript

Modulares Cocos Creator-Skript Mit Cocos Creator ...

JavaScript zum Erzielen eines einfachen Countdown-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

js realisiert das dynamische Laden von Daten durch Wasserfallfluss

In diesem Artikel erfahren Sie den spezifischen C...

Ein Artikel, der Ihnen hilft, mehr über JavaScript-Arrays zu erfahren

Inhaltsverzeichnis 1. Die Rolle des Arrays: 2. De...

Entdecken Sie die Wahrheit hinter dem Neuladevorgang in Nginx

Der heutige Artikel stellt hauptsächlich den Neul...

Analyse des Unterschieds zwischen fettgedrucktem <b> und <strong>

Wir alle Webmaster wissen, dass es bei der Optimi...

Detaillierte Erklärung des Unterschieds zwischen run/cmd/entrypoint in Docker

In Dockerfile können run, cmd und entrypoint zum ...