WEB开发网
开发学院数据库DB2 从 SQL 进行操作系统调用 阅读

从 SQL 进行操作系统调用

 2009-11-20 00:00:00 来源:WEB开发网   
核心提示: 注:对于版本 DB2 UDB 7.x,在 UNIX 系统上使用 bldudf 工具,从 SQL 进行操作系统调用(3),在 Windows 系统上使用 bldmudf 工具,语法略有不同;请参考文件中的描述以获取更多详细信息,该函数的输入是绝对文件名,输出是包含结果的 CLOB, 要在文件 os

注:对于版本 DB2 UDB 7.x,在 UNIX 系统上使用 bldudf 工具,在 Windows 系统上使用 bldmudf 工具。语法略有不同;请参考文件中的描述以获取更多详细信息。

要在文件 os_calls.c 中构建 UDF,只要执行:

     
     INSTHOME 
    /sqllib/samples/c/bldrtn os_calls 

其中 INSTHOME 是到实例主目录的路径。例如:

 c:\\program files\\ibm\\sqllib\\samples\\c\\bldrtn os_calls 

 /home/stolze/sqllib/samples/c/bldrtn os_calls 

该脚本的最后一步将共享库复制到实例目录中的 sqllib/function 目录。

从文件中读取

当读取文件时,如何用 SQL 表示文件内容有几种选择。例如,整个文件内容可以变成一个标量 VARCHAR 或 CLOB 值(二进制文件可以转换成 BLOB),或者如果文件有良好定义的结构,那么该结构就可以被映射成关系表。在第一种情况下,外部的标量函数可以完成该任务;在第二种情况下,我们使用 DB2 表函数来执行从文件内部结构到数据库系统中的表结构的映射。

首先,我们处理将文件的整个内容表示为单个 CLOB 值的基本情况。这意味着读取该文件的整个内容并将它存储到 LOB 值中,然后将该 LOB 值返回到数据库引擎。该函数的输入是绝对文件名,输出是包含结果的 CLOB。使用 清单 3中的 SQL 语句在数据库中创建函数。

清单 3. 创建将文件读入 CLOB 中的函数

CREATE FUNCTION readFile(fileName VARCHAR(255)) 
  RETURNS CLOB(1M) 
  SPECIFIC readFileToClob 
  EXTERNAL NAME 'os_calls!readFileToClob' 
  LANGUAGE C 
  PARAMETER STYLE SQL 
  DETERMINISTIC 
  NOT FENCED 
  RETURNS NULL ON NULL INPUT 
  NO SQL 
  NO EXTERNAL ACTION 
  NO SCRATCHPAD 
  ALLOW PARALLEL 
  NO FINAL CALL; 
  
GRANT EXECUTE ON FUNCTION readFile TO PUBLIC; 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:SQL 进行 操作系统

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接