WEB开发网
开发学院数据库DB2 在 DB2 for Linux, UNIX and Windows 中使用管道加... 阅读

在 DB2 for Linux, UNIX and Windows 中使用管道加载数据

 2010-04-27 00:00:00 来源:WEB开发网   
核心提示: 运行 TestPipe.java 程序以使用 Windows 管道使用以下命令编译和运行示例 TestPipe.java 程序(清单 3), javacTestPipe.javajava-Djava.library.path=".."ibm.TestPipe在上述示例中,在

运行 TestPipe.java 程序以使用 Windows 管道

使用以下命令编译和运行示例 TestPipe.java 程序(清单 3)。

javac TestPipe.java 
java -Djava.library.path=".." ibm.TestPipe 

在上述示例中,您将 java.library.path 系统属性传递给 JVM,用于指示 Pipe.dll 的位置,以便于 JVM 通过 Pipe.dll 调用 Windows 本地方法。在本例中,Pipe.dll 位于比当前目录高一级的目录中。

运行 TestPipe 时,它将创建一个指定管道 \\.\pipe\mynamedpipe,并连接到该管道。随后,它将等待另一个程序(在本例中为 DB2 LOAD 命令)连接到它,然后再开始向管道写入数据。 当 DB2 LOAD 连接到管道之后,Java 程序会开始将 db2tabledata.txt 文件的内容发送给管道以及使用该数据的 DB2 LOAD。

图 1. 在 Windows 命令提示中运行 Java 示例代码
在 DB2 for Linux, UNIX and Windows 中使用管道加载数据

使用管道的 DB2 Load 脚本

如上一节所述,在 TestPipe 程序连接到管道之后,它会等待另一个程序连接到它。要建立这个连接,请运行示例 db2load.sql DB2 脚本(清单 5)。这将创建一个表,并开始调用 LOAD 载入 mynamedpipe。

清单 5. 创建表并启动 LOAD 的示例 DB2 脚本

CONNECT TO SAMPLE; 
 
CREATE TABLE PIPE_TABLE 
( 
"ID" NUMBER(10) NOT NULL , 
"NAME" VARCHAR2(35) , 
"LOC_ID" NUMBER(4)  
) 
; 
 
LOAD FROM 
"\\.\pipe\mynamedpipe" 
OF DEL 
MODIFIED BY CODEPAGE=1208 COLDEL~ ANYORDER  
  USEDEFAULTS CHARDEL"" DELPRIORITYCHAR NOROWWARNINGS 
METHOD P (1,2,3) 
MESSAGES "db2tabledata.txt" 
REPLACE INTO PIPE_TABLE 
( 
"ID", 
"NAME", 
"LOC_ID" 
) 
 NONRECOVERABLE 
INDEXING MODE AUTOSELECT 
; 
 
TERMINATE;   

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

Tags:DB for Linux

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