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

Zusammenfassung der XHTML-Anwendung im Webdesign-Studium

<br />Im Allgemeinen ist die Dateiorganisati...

Front-End-JavaScript-Versprechen

Inhaltsverzeichnis 1. Was ist Promise 2. Grundleg...

Einführung in den Prozess zum Erstellen eigener FTP- und SFTP-Server

FTP und SFTP werden häufig als Dateiübertragungsp...

Webpack erstellt ein Gerüst zum Verpacken von TypeScript-Code

Erstellen eines Ordners Verzeichnisstruktur: daba...

Mehrere gängige Methoden zum Festlegen der Ankerpositionierung in HTML

Mir sind mehrere Möglichkeiten bekannt, die Ankerp...

So mounten Sie eine neue Festplatte auf einem Linux-Cloud-Server

Hintergrund Im Unternehmen wurde ein neuer Server...

Vue integriert Tencent Map zur Implementierung der API (mit DEMO)

Inhaltsverzeichnis Hintergrund zum Schreiben Proj...

So implementieren Sie die Ein-Klick-Bereitstellung von NFS unter Linux

Serverinformationen Verwaltungsserver: m01 172.16...

Webdesign-Tutorial (5): Visuelles Webdesign

<br />Vorheriger Artikel: Webdesign-Tutorial...

Chinesische Parameterbeschreibung und Verwendungsbeispiele für ffmpeg

1. Wenn ffmpeg Videodateien überträgt, können die...