使用機器人框架執行包含 SQL 腳本的預存程序
<p>我想運行包含資料庫和表格創建以及預存程序創建的sql腳本。
但是當我嘗試使用<strong>execute sql script</strong>關鍵字在<strong>database library</strong>中運行sql腳本時,我會得到以下錯誤:</p>
<pre class="brush:php;toolbar:false;">ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right synt to your MariaDB server version for the use synt to 'DELIMITER $$\n CREATE OR
REPLACE PROCEDURE `proc_GetCustomerDetails`(\n I...' at line 2")</pre>
<p>在預存程序之前,我有這樣的<strong>delimiter</strong>:</p>
<pre class="brush:php;toolbar:false;">DELIMITER $$
CREATE OR REPLACE PROCEDURE `proc_GetCustomerDetails`(
IN CustomerNbr LONGTEXT,
IN Lang VARCHAR(5)
)
DETERMINISTIC
BEGIN
IF Lang IS NULL THEN SET lang = "fin";
END IF;
SELECT * from dbname.customer;
END;$$
DELIMITER ;</pre>
<p>如果我註解掉預存程序部分,sql檔將在其餘的表建立語句中運行而不會出錯。 </p>
<p>我在Google上搜尋了一下,沒有找到相關的問題。我看到我們有呼叫預存程序的關鍵字。但是我想把表格建立和預存程序放在同一個sql檔案中並運行。我在這個任務中使用的是MariaDB。 </p>
<p><strong>使用的函式庫</strong>:</p>
<ul>
<li>pymysql</li>
<li>機器人框架資料庫</li>
</ul>
<p>如果我使用HeidiSQL運行sql文件,它將在預存程序和分隔符號中運行而不會出現任何錯誤。這意味著沒有sql錯誤。 </p>
<p><strong>有人可以告訴我如何解決這個問題嗎? </strong></p>