Ҏ一Q?
大家都知道,用PL/SQLq接OracleQ是需要安装Oracle客户端Y件的。有没要惌不安装Oracle客户端直接连接Oracle呢?
其实我一直想q样做,因ؓq个客户端实在太让h讨厌了!Q!不但会安装一个JDKQ而且q会把自己放在环境变量的最前面Q会造成不小的麻烦?
其实我之前问q很多h的,但是他们都说一定需要安装Oracle客户端的.......直到昨天无意中发C以下q个ҎQ?
只需要在Oracle下蝲一个叫Instant Client Package的Y件就可以了,q个软g不需要安装,只要解压可以用了,很方便,q重装了系l还是可以用的?
下蝲q个QInstant Client Package - Basic包。然后解压到L目录Q在q个目录下徏立NETWORK文g夹,接着再这个文件夹下再建立ADMIN文g夹,然后建立tnsnames.ora文gQ内容如下:
oracledata =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostIp )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yourSID )
)
)
q?里根据自q实际情况配置。接着打开PL/SQLQ在perference里面讄OCI Library和Oracle_homeQ我的设|是 OCI Library=c:\oracleclient\oci.dll,Oracle_home=c:\oracleclient?
Ҏ自己的实际情况配|,其实是刚才下蝲下来的那个包的\径。还有最后一个问题,需要设|一个字W集Q这h询出来的数据才不会是qQ写一个批处理pldev. bat攑ֈpl安装目录下,内容如下Q?
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
PLSQLDev.exe
q个字符集,指的是服务器端的字符集,h据实际情况配|?
最后,只要双击q个批处理,再填写帐号和密码可以了
或者在windows pȝ环境变量中加?nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
但是一直有一个问题困扰着Q?/p>
有一个表TQ有字段A,B,C三列?/p>
最常见的方式是用ANT来执行Q务,数据保存到xml文g?/p>
a.xml文g格式如下:
q个时候如果所有字D都不ؓI好办。可以正常导入导出。但是当有一个字DؓI的时候就不好办了?/p>
为分两种情况Q第一行数据某字段为空和非W一行数据某字段为空
当非W一行数据某字段为空时XML文g是这L
表示W二行c字段为空。如果第一为空的时候XML文g变成q样
可是导出到数据库q一列都为空。第二行以后的这一列的非空字段没有导入q去?/p>
q个时候就不能使用q个文g格式Q查看DBunit源才知道q个格式叫flat. dbunitq支持其他几U格式数据:xml、dtd、csv、xls。这里的xml文g的格式是q样的:
q样可以指定ؓI的字段了?/p>
用v来也单,是加一个format参数。(才知道ؓ什么老提Cformat 为空Q因为默认的是flatQ?/p>
现在可以自q导入导出?