SQL和PL/SQL中绑定变量的区别
在Oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.一个硬解析需要经解析,制定执行路
在Oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.
一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行), 而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。
而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。
1、sql中绑定变量
普通sql语句:
SELECT fname, lname, pcode FROM cust WHERE id = 674;
SELECT fname, lname, pcode FROM cust WHERE id = 234;
SELECT fname, lname, pcode FROM cust WHERE id = 332;
含绑定变量的sql 语句:
SELECT fname, lname, pcode FROM cust WHERE id = :cust_no;
Sql*plus 中使用绑定变量:
sql> variable x number;
sql> exec :x := 123;
sql> SELECT fname, lname, pcode FROM cust WHERE id =:x;
2、pl/sql
pl/sql很多时候都会自动绑定变量而无需编程人员操心,引用变量即是引用绑定变量,即很多你写得sql语句都会自动利用绑定变
量,如下例所示:
create or replace procedure dsal(p_empno in number)
as
begin
update emp
set sal=sal*2
where empno = p_empno;
commit;
end;
/
也许此时你会想要利用绑定变量来替代p_empno,但是这是完全没有必要的,因为在pl/sql中,引用变量即是引用绑定变量。
但当引用的值不是变量(常量或者表达式)且要多次重复执行时,也需要动态绑定变量:
DECLARE
c_temp site%ROWTYPE;
TYPE cursortype IS REF CURSOR;
cur_temp cursortype;
BEGIN
OPEN cur_temp FOR('select * from site where site_id=:1')
USING 91;
LOOP
FETCH cur_temp
INTO c_temp;
EXIT WHEN cur_temp%NOTFOUND;
EXECUTE IMMEDIATE 'insert into b values (:1)'
USING c_temp.site_id;
END LOOP;
CLOSE cur_temp;
COMMIT;
END;

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

Die meisten Benutzer verwenden Excel, um Tabellendaten zu verarbeiten. Abgesehen von Experten haben nicht viele Benutzer diese Funktion beim Schreiben in VBA verwendet Die Funktionen der Funktionen sind ähnlich. Lassen Sie mich Ihnen die Verwendung der iif-Funktion vorstellen. Es gibt iif-Funktionen in SQL-Anweisungen und VBA-Code in Excel. Die iif-Funktion ähnelt der IF-Funktion im Excel-Arbeitsblatt. Sie führt eine Beurteilung von wahren und falschen Werten durch und gibt unterschiedliche Ergebnisse basierend auf den logisch berechneten wahren und falschen Werten zurück. IF-Funktionsverwendung ist (Bedingung, ja, nein). IF-Anweisung und IIF-Funktion in VBA Die erstere IF-Anweisung ist eine Steueranweisung, die je nach Bedingungen unterschiedliche Anweisungen ausführen kann, während die letztere

Oracle-Datenbankprotokollinformationen können mit den folgenden Methoden abgefragt werden: Verwenden Sie SQL-Anweisungen, um Protokolldateien abzufragen. Verwenden Sie den Befehl ALTER SYSTEM, um den Status der aktuellen Protokolldatei anzuzeigen Mit dem TRACE-Befehl können Sie Informationen zu bestimmten Ereignissen anzeigen. Verwenden Sie die Systemtools, um das Ende der Protokolldatei anzuzeigen.

Um die Speicherstruktur der MySQL-Datenbank abzufragen, können Sie die folgende SQL-Anweisung verwenden: SHOW CREATE TABLE Tabellenname; diese Anweisung gibt die Spaltendefinition und Tabellenoptionsinformationen der Tabelle zurück, einschließlich Spaltenname, Datentyp, Einschränkungen und allgemeine Eigenschaften der Tabelle , wie Speicher-Engine und Zeichensatz.

Abfrageergebnisse in Navicat exportieren: Abfrage ausführen. Klicken Sie mit der rechten Maustaste auf die Abfrageergebnisse und wählen Sie Daten exportieren. Wählen Sie nach Bedarf das Exportformat aus: CSV: Feldtrennzeichen ist Komma. Excel: Enthält Tabellenüberschriften im Excel-Format. SQL-Skript: Enthält SQL-Anweisungen, die zur Neuerstellung von Abfrageergebnissen verwendet werden. Wählen Sie Exportoptionen (z. B. Kodierung, Zeilenumbrüche). Wählen Sie den Exportspeicherort und den Dateinamen aus. Klicken Sie auf „Exportieren“, um den Export zu starten.

Um das Problem mit dem Initialisierungsfehler der MySQL-Datenbank zu beheben, führen Sie die folgenden Schritte aus: Überprüfen Sie die Berechtigungen und stellen Sie sicher, dass Sie einen Benutzer mit den entsprechenden Berechtigungen verwenden. Wenn die Datenbank bereits vorhanden ist, löschen Sie sie oder wählen Sie einen anderen Namen. Wenn die Tabelle bereits vorhanden ist, löschen Sie sie oder wählen Sie einen anderen Namen. Überprüfen Sie die SQL-Anweisung auf Syntaxfehler. Bestätigen Sie, dass der MySQL-Server ausgeführt wird und eine Verbindung hergestellt werden kann. Stellen Sie sicher, dass Sie die richtige Portnummer verwenden. Überprüfen Sie die MySQL-Protokolldatei oder den Fehlercode-Finder auf Details zu anderen Fehlern.

MySQL-SQL-Anweisungen können wie folgt ausgeführt werden: Mit der MySQL-CLI (Befehlszeilenschnittstelle): Melden Sie sich bei der Datenbank an und geben Sie die SQL-Anweisung ein. Verwenden von MySQL Workbench: Starten Sie die Anwendung, stellen Sie eine Verbindung zur Datenbank her und führen Sie Anweisungen aus. Verwenden Sie eine Programmiersprache: Importieren Sie die MySQL-Verbindungsbibliothek, erstellen Sie eine Datenbankverbindung und führen Sie Anweisungen aus. Verwenden Sie andere Tools wie DB Browser für SQLite: Laden Sie die Anwendung herunter und installieren Sie sie, öffnen Sie die Datenbankdatei und führen Sie die Anweisungen aus.

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung. In der MySQL-Datenbank ist eine Transaktion eine Reihe von SQL-Anweisungen. Entweder sind alle Ausführungen erfolgreich oder alle Ausführungen schlagen fehl, wodurch die Konsistenz und Integrität der Daten sichergestellt wird. In MySQL können Transaktionen in automatische Übermittlung und manuelle Übermittlung unterteilt werden. Der Unterschied liegt im Zeitpunkt der Transaktionsübermittlung und im Umfang der Kontrolle über die Transaktion. Im Folgenden wird der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung ausführlich vorgestellt und spezifische Codebeispiele zur Veranschaulichung gegeben. 1. Automatisch in MySQL übermitteln, wenn es nicht angezeigt wird

MySQL und PL/SQL sind zwei unterschiedliche Datenbankverwaltungssysteme, die die Merkmale relationaler Datenbanken bzw. prozeduraler Sprachen darstellen. In diesem Artikel werden die Ähnlichkeiten und Unterschiede zwischen MySQL und PL/SQL anhand konkreter Codebeispiele zur Veranschaulichung verglichen. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem, das Structured Query Language (SQL) zum Verwalten und Betreiben von Datenbanken verwendet. PL/SQL ist eine für Oracle-Datenbanken einzigartige prozedurale Sprache und wird zum Schreiben von Datenbankobjekten wie gespeicherten Prozeduren, Triggern und Funktionen verwendet. Dasselbe
