1、如何使用JDBC连远程Oracle数据库
创建连接时选择JNDI方式,并且在simple-jndi/jdbc.properties文件中采用如下配置:
ORCL/type=javax.sql.DataSource
ORCL/driver=oracle.jdbc.driver.OracleDriver
ORCL/url=jdbc:oracle:thin:@//192.168.0.251:1521/ORCL
ORCL/user=XXXX
ORCL/password=YYYY
2、如何读取Oracle数据表中XMLTYPE类型的字段
比如有一个表:
create table student (id int, xml sys.xmltype)
在“表输入”节点中可以采用如下查询语句:
SELECT id, t.xml.getClobVal() xml
FROM student t
3、 如何转换字段的类型
可以采用“拆分字段”节点,比如一个字符串字段,它由数据字符和填充的空格组成,需要将其转化为数字类型,就可以使用“拆分字段”节点,类型选Integer,并去除左右空格。
4、“java代码”节点中如何生成多行记录
下面是一个创建多个row的例子:
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception {
if (first) {
first = false;
}
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
String ID = get(Fields.In, "ID").getString(r);
String XML = get(Fields.In, "XML").getString(r);
List rowList = Parser.processDoc(XMLRECORD);
Iterator rowItr = rowList.iterator();
while (rowItr.hasNext()) {
Map rowMap = (Map)rowItr.next();
Object[] outputRow = createOutputRow(r, data.outputRowMeta.size());
get(Fields.Out, "col1").setValue(outputRow, rowMap.get("col1"));
get(Fields.Out, "col2").setValue(outputRow, rowMap.get("col2"));
get(Fields.Out, "col3").setValue(outputRow, rowMap.get("col3"));
putRow(data.outputRowMeta, outputRow);
}
return true;
}