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

从 SQL 进行操作系统调用

 2009-11-20 00:00:00 来源:WEB开发网   
核心提示: 编译了代码,并链接到共享库之后,从 SQL 进行操作系统调用(10),就要测试该函数,将该函数与上面介绍的 UDF readFileTable() 一起使用,因此,该文件将在向标准输出转储时只显示一个长字符串,我们还可以通过再次从该文件读取数据,并将它表示为数据库中的表

编译了代码,并链接到共享库之后,就要测试该函数。将该函数与上面介绍的 UDF readFileTable() 一起使用,我们还可以通过再次从该文件读取数据,并将它表示为数据库中的表,来验证数据是否是以正确的格式写入文件的。

/home/stolze $ db2 "VALUES writeFile( '/home/stolze/write.file', 10, 'some text' )" 
1 
----------- 
     0 
 1 record(s) selected. 
/home/stolze $ more write.file 
    10some text 
/home/stolze $ db2 "VALUES writeFile( '/home/stolze/write.file', -1234567890, 'some text' )" 
1 
----------- 
SQL0443N Routine "STOLZE.WRITEFILE" (specific name "WRITEFILE") has 
returned an error SQLSTATE with diagnostic text "The number 
-1234567890 is too long." SQLSTATE=38301 
/home/stolze $ db2 "CREATE TABLE t ( id INTEGER, string VARCHAR(50) )" 
/home/stolze $ db2 "INSERT INTO t VALUES ( 1, 'the first text' ), ( 2, 'another text' )" 

下列 SELECT 语句中的 UDF 执行的文件写操作处理了名为“t”的表中的两行。如果表包含更多行,则其它行也会被写入文件。请注意,我没有在生成的文件 write.file 中设置行结束符。因此,该文件将在向标准输出转储时只显示一个长字符串,并且只在一行上显示。

/home/stolze $ db2 "SELECT writeFile( '/home/stolze/write.file', id, string ) FROM t" 
/home/stolze $ more write.file 
     1the first text               2another text 
/home/stolze $ db2 "SELECT * FROM TABLE ( readFileTable( '/home/stolze/write.file' ) ) AS x" 
INTCOL   STRING 
----------- -------------------------------------------------- 
     1 the first text 
     2 another text 
 2 record(s) selected. 

上一页  5 6 7 8 9 10 

Tags:SQL 进行 操作系统

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