mysql的过程和Oracle的区别

mySQL 和 Oracle 不一样  , mysql 中的function 中, 没有 

CREATE OR REPLACE
如果需要用到这句,可以使用
DROP FUNCTION IF EXISTS `GetUserName`;

CREATE FUNCTION `GetUserName`(nUserID INT) ...
代替.

 如: (错误)

CREATE OR REPLACE   PROCEDURE  sp_test() 
    BEGIN
        SET @z = 'hello World';
            SELECT @z ;
    END;

 正确:

DELIMITER $$

DROP FUNCTION IF EXISTS `GetUserName`$$

CREATE FUNCTION `GetUserName`(nUserID INT)
    RETURNS VARCHAR(64)
BEGIN
    DECLARE sUserName VARCHAR(64);
    SELECT FirstName INTO sUserName FROM Users WHERE Seq = nUserID;
    RETURN sUserName;
END$$

DELIMITER ;
原文地址:https://www.cnblogs.com/mjorcen/p/3914166.html