Inhaltsverzeichnis
1. Erstellen Sie eine temporäre Tabelle
1. ON COMMIT DELETE ROWS
2. ON COMMIT PRESERVE ROWS
Zweitens verwenden Sie in() oder in()
Heim Datenbank Oracle Beispiel zur Lösung des Problems, dass Oracle in Anweisungen nicht mehr als 1000 verwenden kann

Beispiel zur Lösung des Problems, dass Oracle in Anweisungen nicht mehr als 1000 verwenden kann

Jun 13, 2022 pm 06:11 PM
oracle

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.

Beispiel zur Lösung des Problems, dass Oracle in Anweisungen nicht mehr als 1000 verwenden kann

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 Login kopieren

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);
Nach dem Login kopieren

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));
Nach dem Login kopieren

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'))
Nach dem Login kopieren
Die obige Aussage entspricht tatsächlich:

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')
Nach dem Login kopieren

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>
Nach dem Login kopieren

Jetzt wird es geändert in:

where (1, u.id) in
<foreach collection="userIds" item="item" separator="," open="(" close=")" index="">
	(1, #{item})
</foreach>
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie die Tabellenraumgröße von Oracle So überprüfen Sie die Tabellenraumgröße von Oracle Apr 11, 2025 pm 08:15 PM

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

So sehen Sie den Instanznamen von Oracle So sehen Sie den Instanznamen von Oracle Apr 11, 2025 pm 08:18 PM

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.

So verschlüsseln Sie die Oracle -Ansicht So verschlüsseln Sie die Oracle -Ansicht Apr 11, 2025 pm 08:30 PM

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.

Wie man die Oracle -Installation deinstalliert Wie man die Oracle -Installation deinstalliert Apr 11, 2025 pm 08:24 PM

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.

Wie man Zeit in Oracle bekommt Wie man Zeit in Oracle bekommt Apr 11, 2025 pm 08:09 PM

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.

So importieren Sie die Oracle -Datenbank So importieren Sie die Oracle -Datenbank Apr 11, 2025 pm 08:06 PM

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.

So richten Sie Benutzer von Oracle ein So richten Sie Benutzer von Oracle ein Apr 11, 2025 pm 08:21 PM

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.

So erstellen Sie Oracle Dynamic SQL So erstellen Sie Oracle Dynamic SQL Apr 12, 2025 am 06:06 AM

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.

See all articles