2014-02-17 60 views
0

解析字符串轉換成int MySQL服務器上,我覺得這個功能通過phpMyAdmin的

CREATE FUNCTION dbo.udf_GetNumeric 
    (@strAlphaNumeric VARCHAR(256)) 
RETURNS VARCHAR(256) 
AS 
BEGIN 
DECLARE @intAlpha INT 
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) 
BEGIN 
WHILE @intAlpha > 0 
BEGIN 
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '') 
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) 
END 
END 
RETURN ISNULL(@strAlphaNumeric,0) 
END 
GO 

,我想使用它,但我得到了像

1064的錯誤 - 你有一個錯誤的SQL語法;檢查對應於你的MySQL服務器版本正確的語法附近使用手冊「@strAlphaNumeric VARCHAR(256))返回VARCHAR(256)AS BEGIN DECLARE @intAlp」第2行

我的版本的phpMyAdmin是4.0.10

回答

0

您正在返回一個布爾值,該行用於定義RETURN ISNULL(@strAlphaNumeric,0)。您必須返回VARCHAR,而如果這確實是您要實施的內容。嘗試更改RETURNS VARCHAR(256)RETURNS TINYINT(1),看看這是否會工作。

+0

#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在'@strAlphaNumeric VARCHAR(256)'附近使用正確的語法)RETURNS TINYINT(3)在BEGIN DECLARE @intAlpha'在第2行 – user3293650