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

sp_addextendedproc

语法


sp_addextendedproc <esp_name>, <dll_name>

参数

esp_name

是扩展存储过程的名称。此名称必须与实现 ESP 的过程语言函数的名称相同。 必须是有效的 SAP ASE 标识符。

dll_name

<esp_name> 指定的函数所在的动态链接库(DLL)文件的名称。指定 <dll_name> 时可以不使用扩展名,也可使用平台特定的扩展名,例如在 Windows 上使用 .dll,在 Solaris 上使用 .so。如果指定了扩展名,必须用引号将 <dll_name> 引起来。

示例

示例 1

为名为 my_esp 的函数注册 ESP,该函数位于 sqlsrvdll.dll 文件中。生成的 ESP 数据库对象的名称也是 my_esp:


sp_addextendedproc my_esp, "sqlsrvdll.dll"

用法

使用 sp_addextendedproc 时,还存在一些其它注意事项:

  • 从 master 数据库中执行 sp_addextendedproc

  • 只能使用 sp_addextendedproc 添加不带参数的扩展存储过程。如果扩展存储过程需要正式的参数列表,则必须使用带 as external name 选项的 create procedure 命令,并提供完整的参数列表。

  • <esp_name> 区分大小写。它必须与 DLL 中的函数名称匹配。

  • <dll_name> 表示的 DLL 必须位于创建 ESP 的服务器计算机上,并且 DLL 目录必须位于以下位置:

    
       (Windows) $PATH
    
       (Compaq Tru64) $LD_LIBRARY_PATH
    
        (HP) $SH_LIBRARY_PATH
    

    如果未找到该文件,搜索机制还会搜索 $SYBASE/lib(在 Windows 上的 $SYBASE/dll)。

  • (Windows) ESP 函数不应调用 C 运行时信号例程。这会导致 XP Server 失败,因为 Open Server 不支持 Windows 上的信号处理。