Führen Sie gespeicherte Prozeduren mit SQL-Skripts mit Robot Framework aus
<p>Ich möchte ein SQL-Skript ausführen, das die Erstellung von Datenbanken und Tabellen sowie die Erstellung gespeicherter Prozeduren umfasst.
Aber wenn ich versuche, das SQL-Skript in der <strong>Datenbankbibliothek</strong> mit dem Schlüsselwort <strong>execute sql script</strong> auszuführen, erhalte ich die folgende Fehlermeldung: </p>
<pre class="brush:php;toolbar:false;">ProgrammingError: (1064, "Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, um die richtige Syntax für die Verwendung in der Nähe zu finden 'DELIMITER $$n CREATE OR
ERSETZEN SIE PROCEDURE `proc_GetCustomerDetails`(n I...' in Zeile 2")</pre>
<p>Vor der gespeicherten Prozedur habe ich dieses <strong>Trennzeichen</strong>: </p>
<pre class="brush:php;toolbar:false;">DELIMITER $$
PROZEDUR „proc_GetCustomerDetails“ ERSTELLEN ODER ERSETZEN (
IN KundenNr LANGTEXT,
IN LANG VARCHAR(5)
)
DETERMINISTISCH
BEGINNEN
WENN Lang NULL IST, DANN SETZE lang = "fin";
ENDE WENN;
SELECT * from dbname.customer;
ENDE;$$
DELIMITER ;</pre>
<p>Wenn ich den Teil der gespeicherten Prozedur auskommentiere, wird die SQL-Datei zusammen mit den restlichen Tabellenerstellungsanweisungen fehlerfrei ausgeführt. </p>
<p>Ich habe bei Google gesucht und keine entsprechenden Fragen gefunden. Ich sehe, wir haben Schlüsselwörter, die gespeicherte Prozeduren aufrufen. Aber ich möchte die Tabellenerstellung und die gespeicherte Prozedur in derselben SQL-Datei ablegen und ausführen. Ich verwende MariaDB für diese Aufgabe. </p>
<p><strong>Verwendete Bibliotheken</strong>: </p>
<ul>
<li>pymysql</li>
<li>Robot Framework-Datenbankbibliothek</li>
</ul>
<p>Wenn ich die SQL-Datei mit HeidiSQL ausführe, läuft sie innerhalb der gespeicherten Prozedur und des Trennzeichens ohne Fehler. Dies bedeutet, dass keine SQL-Fehler vorliegen. </p>
<p><strong>Kann mir jemand sagen, wie ich das beheben kann? </strong></p>