您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

xp_scanf 系统过程

使用格式字符串从输入字符串中抽取子字符串。

语法

xp_scanf(

,

[ , [, ... ] ]

)

参数

  • 使用此 CHAR(254) 参数指定输入字符串。

  • 使用此 CHAR(254) 参数指定输入字符串的格式,为每个 参数使用占位符 (%s)。 参数中最多可以有五十个占位符,而且必须与 参数中的占位符数量相同。

  • 使用这些 CHAR(254) 参数中的一个或多个来存储从 中抽取的子字符串。最多可以有 50 个这样的参数。

    特权

    您必须具有系统过程的 EXECUTE 特权。

    注释

    xp_scanf 系统过程使用指定的 format 从输入字符串中抽取子字符串,并将结果放在指定的参数值中。

    仅支持 %s 字符串格式。不支持 %d 和 %f 等其它格式指示符,如果在扫描输入字符串的过程中遇到这些字符,扫描将会停止。

    示例

    以下语句从输入缓冲区 Hello World! 中抽取子字符串 Hello 和 World!,并将它们分别放在变量 string1 和 string2 中,然后再选择它们:

    CREATE VARIABLE string1 CHAR( 254 );
    

    CREATE VARIABLE string2 CHAR( 254 );

    CALL dbo.xp_scanf( 'Hello World!', '%s %s', string1, string2 );

    SELECT string1, string2;

    下列语句介绍如何选取日期字符串及如何将其分为年、月、日三个部分:

    CREATE VARIABLE ymd LONG VARCHAR;
    

    CREATE VARIABLE year CHAR( 254 );

    CREATE VARIABLE month CHAR( 254 );

    CREATE VARIABLE day CHAR( 254 );

    SET ymd = '2014/11/23';

    SET ymd = REPLACE(ymd, '/', ' ');

    CALL dbo.xp_scanf( ymd, '%s %s %s', year, month, day );

    SELECT ymd, year, month, day;