使用mysql中新的用户定义函数复制CHARINDEX

时间:2016-11-28 09:21:13

标签: mysql string char migration

有些人可以使用新的用户定义函数复制CHARINDEX。 (使用instr)

IF(CHARINDEX('(G)',v_username) = 0) THEN

mysql版本。如果能保持功能相同,我的迁移将变得更加顺畅。

IF(INSTR(v_username,'(G)') = 0) THEN

1 个答案:

答案 0 :(得分:1)

是的,这可以做到。一种方法是创建一个包装CharIndex的user-defined function

-- CHARINDEX wrapper.
CREATE FUNCTION INSTR
    (
        @Source     NVARCHAR(255),      -- Search this..
        @Find       NVARCHAR(255)       -- ...for this.
    )
RETURNS NVARCHAR(255)
AS
BEGIN   
    RETURN CHARINDEX(@Find, @Source)
END

这种方法的缺点是UDF在性能方面无法与本机功能竞争。

您可以通过查看common language runtime来减少影响。 CLR允许您编写编译为本机代码的函数,SP等。

所有事情都考虑在内;我建议您更新代码。虽然它们可能是漫长而痛苦的,但迁移是一次性的任务。