2014-02-17 2 views
0

에 의해 MySQL 서버에 INT로 문자열을 구문 분석 내가이 기능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 서버 버전에 해당하는 설명서를 확인 라인에서 phpMyAdmin을 2

내 버전을 '@strAlphaNumeric VARCHAR를 (256))는 AS DECLARE의 @intAlp을 BEGIN) VARCHAR (256 RETURNS' 4.0.10

답변

0

RETURN ISNULL(@strAlphaNumeric,0)으로 정의 된이 줄을 사용하면 부울을 반환합니다. 이것이 실제로 구현하려는 경우 VARCHAR을 반환해야합니다. RETURNS VARCHAR(256)RETURNS TINYINT(1)으로 변경해보고 이것이 작동하는지 확인하십시오.

+0

# 1064 - SQL 구문에 오류가 있습니다. 올바른 구문이 '@strAlphaNumeric VARCHAR (256)'근처에서 사용하도록 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 2 행에서 TINYINT (3) AS BEGIN DECLARE @intAlpha를 반환하십시오. – user3293650