


Beispiel zur Lösung des Problems, dass Oracle in Anweisungen nicht mehr als 1000 verwenden kann
Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle und stellt vor allem die Verwendung der in-Methode zum Abfragen von Datensätzen vor. Wenn die Anzahl der Parameter nach in 1000 überschreitet, tritt ein Fehler auf und JDBC löst „java.sql.SQLException“ aus. ORA-01795: Ausnahme: Die maximale Anzahl von Ausdrücken in der Liste beträgt 1000. Werfen wir einen Blick darauf, wie wir das Problem lösen können. Ich hoffe, es wird für alle hilfreich sein.
Empfohlenes Tutorial: „Oracle Video Tutorial“
在oracle中,使用in方法查询记录的时候,如果in后面的参数个数超过1000个,那么会发生错误,JDBC会抛出“java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000”这个异常。
Meine Lösung ist:
1. Erstellen Sie eine temporäre Tabelle
Es gibt zwei Arten von temporären ORACLE-Tabellen: temporäre Tabellen auf Sitzungsebene Tabellen und temporäre Tabellen auf Transaktionsebene.
1. ON COMMIT DELETE ROWS
Es ist der Standardparameter der temporären Tabelle, was bedeutet, dass die Daten in der temporären Tabelle nur während des Transaktionsprozesses (COMMIT) gültig sind Das temporäre Segment der temporären Tabelle wird automatisch gelöscht (TRUNCATE), die Struktur und Metadaten der temporären Tabelle werden jedoch weiterhin im Datenwörterbuch des Benutzers gespeichert. Wenn die temporäre Tabelle ihre Aufgabe erfüllt hat, ist es am besten, die temporäre Tabelle zu löschen, da die Datenbank sonst viele Tabellenstrukturen und Metadaten der temporären Tabelle behält.
2. ON COMMIT PRESERVE ROWS
Das bedeutet, dass der Inhalt der temporären Tabelle transaktionsübergreifend vorhanden sein kann. Wenn die Sitzung jedoch endet, wird das temporäre Segment der temporären Tabelle mit dem Ende der Sitzung verworfen Daten in der temporären Tabelle wurden natürlich verworfen. Aber auch die Struktur und Metadaten der temporären Tabelle werden im Datenwörterbuch des Benutzers gespeichert. Wenn die temporäre Tabelle ihre Aufgabe erfüllt hat, ist es am besten, die temporäre Tabelle zu löschen, da die Datenbank sonst viele Tabellenstrukturen und Metadaten der temporären Tabelle behält.
create global temporary table test_table (id varchar2(50), name varchar2(10)) on commit preserve rows; --创建临时表(当前会话生效) --添加数据 insert into test_table VALUES('ID001', 'xgg'); insert into test_table VALUES('ID002', 'xgg2'); select * from test_table; --查询数据 TRUNCATE TABLE test_table; --清空临时表数据 DROP TABLE test_table; --删除临时表
Nach dem Erstellen der temporären Tabelle können Sie Unterabfragen in der in-Anweisung verwenden, sodass es nicht mehr als 1.000 Fehlerberichte gibt
select * from table_name where id in(select id from test_table);
Zweitens verwenden Sie in() oder in()
Offiziell gesagt: Ein Komma - Eine durch Trennzeichen getrennte Liste von Ausdrücken kann nicht mehr als 1000 Ausdrücke enthalten, also Tupel. Die Syntax lautet wie folgt:
SELECT * FROM TABLE_NAME WHERE (1, COLUMN_NAME) IN ((1, VALUE_1), (1, VALUE_2), ... ... ... ... (1, VALUE_1000), (1, VALUE_1001));
Zum Beispiel, wenn wir Benutzerinformationen nach Benutzer-ID abfragen möchten In der Benutzertabelle können wir schreiben: select * from user u where (1, u.id) in ((1, 'id001'),(1,'id002'),(1,'id003'))
select * from user u where (1=1 and u.id='id001') or (1=1 and u.id='id002') or (1=1 and u.id='id003')
Die meisten unserer Projekte verwenden ORM-Frameworks wie MyBatis. Wir können MyBatis' foreach verwenden. Es wurde ursprünglich so geschrieben:
where u.id in <foreach collection="userIds" item="item" separator="," open="(" close=")" index=""> #{item} </foreach>
Jetzt wird es geändert in:
where (1, u.id) in <foreach collection="userIds" item="item" separator="," open="(" close=")" index=""> (1, #{item}) </foreach>
Empfohlenes Tutorial: „
Oracle Video Tutorial“
Das obige ist der detaillierte Inhalt vonBeispiel zur Lösung des Problems, dass Oracle in Anweisungen nicht mehr als 1000 verwenden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Um die Oracle -Tablespace -Größe abzufragen, führen Sie die folgenden Schritte aus: Bestimmen Sie den Namen Tablespace, indem Sie die Abfrage ausführen: Wählen Sie Tablespace_Name aus dba_tablespaces. Abfragen Sie die Tablespace -Größe durch Ausführen der Abfrage: Summe (Bytes) als Total_Size, sum (bytes_free) als verfügbare_space, sum

Es gibt drei Möglichkeiten, Instanznamen in Oracle anzuzeigen: Verwenden Sie den "SQLPLUS" und "Instance_name aus v $ Instance". Befehle in der Befehlszeile. Verwenden Sie den "show Instance_name;" Befehl in SQL*Plus. Überprüfen Sie die Umgebungsvariablen (Oracle_sid unter Linux) über den Task -Manager des Betriebssystems, den Oracle Enterprise Manager oder über das Betriebssystem.

Mit der Verschlüsselung von Oracle View können Sie Daten in der Ansicht verschlüsseln und so die Sicherheit sensibler Informationen verbessern. Die Schritte umfassen: 1) Erstellen des Master -Verschlüsselungsschlüssels (MEK); 2) Erstellen einer verschlüsselten Ansicht, der Ansicht und der Verschlüsselung der Ansicht und der MEK angeben; 3) Benutzern Sie die Benutzer, auf die verschlüsselte Ansicht zuzugreifen. Wie verschlüsselte Ansichten funktionieren: Wenn ein Benutzer nach einer verschlüsselten Ansicht nachgefragt wird, verwendet Oracle MEK, um Daten zu entschlüsseln und sicherzustellen, dass nur autorisierte Benutzer auf lesbare Daten zugreifen können.

Deinstallieren Sie die Methode für Oracle -Installationsfehler: Schließen Sie den Oracle -Service, löschen Sie Oracle -Programmdateien und Registrierungsschlüssel, Deinstallieren Sie Oracle -Umgebungsvariablen und starten Sie den Computer neu. Wenn das Deinstall fehlschlägt, können Sie das Oracle Universal Deinstall -Tool manuell deinstallieren.

Es gibt die folgenden Methoden, um Zeit in Oracle zu bekommen: current_timestamp: Gibt die aktuelle Systemzeit genau auf Sekunden zurück. SYSTIMESTAMP: genauer als Current_Timestamp, für Nanosekunden. SYSDATE: Gibt das aktuelle Systemdatum mit Ausnahme des Zeitteils zurück. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): konvertiert das aktuelle Systemdatum und die Uhrzeit in ein bestimmtes Format. Extrakt: Extrahiert einen bestimmten Teil aus einem Zeitwert wie einem Jahr, Monat oder Stunde.

Datenimportmethode: 1. Verwenden Sie das SQLLoader -Dienstprogramm: Datendateien vorbereiten, Steuerdateien erstellen und SQLLOADER ausführen. 2. Verwenden Sie das IMP/Exp -Tool: Daten exportieren, Daten importieren. Tipp: 1. Empfohlener SQL*Loader für Big -Data -Sets; 2. Die Zieltabelle sollte vorhanden und die Spaltendefinition entspricht. 3. Nach dem Import muss die Datenintegrität überprüft werden.

Befolgen Sie die folgenden Schritte, um einen Benutzer in Oracle zu erstellen: Erstellen Sie einen neuen Benutzer mit der Erstellung der Benutzeranweisung. Gewähren Sie die erforderlichen Berechtigungen mit der Zuschusserklärung. Optional: Verwenden Sie die Ressourcenanweisung, um das Kontingent festzulegen. Konfigurieren Sie andere Optionen wie Standardrollen und temporäre Tabellenspaces.

SQL -Anweisungen können basierend auf der Laufzeiteingabe erstellt und ausgeführt werden, indem die dynamische SQL von Oracle verwendet wird. Zu den Schritten gehören: Vorbereitung einer leeren Zeichenfolgenvariable zum Speichern von dynamisch generierten SQL -Anweisungen. Verwenden Sie die sofortige Ausführung oder Vorbereitung, um dynamische SQL -Anweisungen zu kompilieren und auszuführen. Verwenden Sie die Bind -Variable, um die Benutzereingabe oder andere dynamische Werte an dynamische SQL zu übergeben. Verwenden Sie sofortige Ausführung oder führen Sie aus, um dynamische SQL -Anweisungen auszuführen.
