MySQL - SHOW FUNCTION CODE 語句



MySQL SHOW FUNCTION CODE 語句

函式是一塊組織良好的、可重用的程式碼塊,用於執行單個相關的操作。函式為應用程式提供更好的模組化和高度的程式碼重用。可以使用 CREATE FUNCTION 語句建立儲存函式。

SHOW FUNCTION CODE 語句顯示指定命名儲存函式的內部程式碼。要執行此語句,我們需要擁有 SHOW ROUTINE 或 SELECT(全域性)許可權。

此語句以結果集的形式返回程式碼,其中每一行表示函式中的一個指令。

此語句僅適用於除錯伺服器。要執行此操作,請確保使用“--with-debug”選項構建了 MySQL,否則將生成以下錯誤 -

ERROR 1289 (HY000): The 'SHOW PROCEDURE|FUNCTION CODE' feature is disabled; 
you need MySQL built with '--with-debug' to have it working

語法

以下是 SHOW FUNCTION CODE 語句的語法 -

SHOW FUNCTION CODE func_name;

其中 func_name 是您需要其程式碼的函式的名稱。

示例

假設我們使用 CREATE 語句在資料庫中建立了一個名為 Emp 的表,如下所示 -

CREATE TABLE Emp(
   Name VARCHAR(255), 
   DOB DATE, 
   Location VARCHAR(255)
);

現在,讓我們向 Emp 表中插入一些記錄 -

INSERT INTO Emp VALUES 
('Amit', DATE('1970-01-08'), 'Hyderabad'),
('Sumith', DATE('1990-11-02'), 'Vishakhapatnam'),
('Sudha', DATE('1980-11-06'), 'Vijayawada');

並且,如果我們建立了一個 getDob() 函式,它接受員工的姓名,檢索並返回 DOB 列的值。

DELIMITER //
CREATE FUNCTION getDob(emp_name VARCHAR(50))
   RETURNS DATE
   DETERMINISTIC
   BEGIN
      declare dateOfBirth DATE DEFAULT CURDATE();
      select DOB into dateOfBirth from emp where Name = emp_name;
      return dateOfBirth;
   END//
DELIMITER ;

以下查詢將以上建立的過程的程式碼作為結果集返回 -

SHOW PROCEDURE CODE test;

輸出

以上查詢產生以下輸出 -

位置 指令
0 set dateOfBirth@0 CURDATE()
1 stmt 5 select DOB into dateOfBirth from emp where Name = emp_name
2 freturn dateOfBirth
廣告

© . All rights reserved.