oracle中文本数据的导入可以利用sqlldr,导出成文本可以用spool命令实现,当然也可以借助第三方工具,例如golder,dts等
sqlldr的具体使用你可以参看
http://blog.csdn.net/s98/archive/2004/10/05/125627.aspx
这些已经可以实现你的1、2点至于第3、4点可以用spool命令实现,spool的用法很简单,oracle导出成文本的时候默认是没有分隔符的
spool命令的写法就是:
spool filename
 select ... from tab_name where ...;
spool off
要什么格式可以在select中处理

解决方案 »

  1.   

    好像都是通过工具的方法阿,我现在考虑到一个应用的问题。假如我是用delphi来进行编程的话,好像没有办法在程序的执行过程中调用这些工具阿。
    有没有办法实现?
      

  2.   

    sqlldr可以直接在程序中调用,
    spool写成bat文件,在程序中调用问题也不大
      

  3.   

    举例,假如是如下的方法,
    我们可以用Oracle的sqlldr工具来导入数据。例如: 
    sqlldr scott/tiger control=loader.ctl 
    控制文件(loader.ctl) 将加载一个外部数据文件(含分隔符). loader.ctl如下: 
    load data 
    infile 'c:\data\mydata.csv' 
    into table emp 
    fields terminated by "," optionally enclosed by '"' 
    ( empno, empname, sal, deptno ) mydata.csv 如下: 
    10001,"Scott Tiger", 1000, 40 
    10002,"Frank Naude", 500, 20 如果我本身是导入不同的文件名,那么我岂不是每次都要向办法修改infile 的数据文件名?spool的bat,能不能具体一点说说看?唉,没有办法,我是一个大大的菜鸟。还请你不要嫌我烦啊。
      

  4.   

    你说,
       sqlldr本来就是在dos下运行的我的意思是说,能不能不通过外部调用,而是在delphi里面使用类似内部函数这样的方式进行调用,有没有办法?
      

  5.   

    导入不同的文件的话,可以将控制文件中的infile一行删除,在调用sqlldr的时候加上data=filename就可以了如果要象程序的内部函数进行调用有些困难
      

  6.   

    spool的用法很简单,你按上面的方法操作一次就会清楚了
    需要注意的就是需要设置一下spool的文本信息内容,如
    set pagesize 0等,将执行的sql和列名等不要显示出来,其它的也没什么程序调用sqlldr的话也只是调用shell执行sqlldr命令,没有什么特殊的啊