建表aa
create table aa
(
 id number(8),
 name varchar2(8)
)文本文件test.txt
1|'猪八戒'
2|'孙悟空'
3|'唐僧'控制文件test.ctl
load data
infile 'test.txt'
APPEND
into table aa
fields terminated by "|"
(id,name)执行
sqlldr userid=system/manager control=test.ctl

解决方案 »

  1.   

    如果你是用c#的话很简单用process类即可。
      

  2.   

    我是用delphi调用的,可以实现吗?如何实现?
      

  3.   

    在控制文件中不要写infile,在sqlldr 命令行中加入data=filename参数即可
      

  4.   

    楼上的方法可以考虑,不过还是不能在delphi下调用啊!是不是把sqlldr命令写入.bat文件中,然后在delphi程序中调用这个批处理文件,那如果是这样的话,那如何给.bat文件传递参数(因为要修改数据文件的路径)?如果不是采用这样的方法,那还有其他的方法吗?
      

  5.   

    sqlldr还没用过,提供imp类以导出命令:WinExec('f:\oracle\ora92\bin\exp.EXE test/test file=c:\test.dmp', SW_SHOWNORMAL);DELPHI里有一个函数ShellExecute,在USERS加上SHELLAPI
    这个函数是直接运行你脚本
    这是C++BU的用法,跟DELPHI是一样的。你修改一下。  ShellExecute(0, "open", "EXP system/manager FILE=EXP.DMP FULL=Y", NULL, NULL, SW_SHOWDEFAULT);
    ShellExecute(0, "open", "imp system/manager FILE=EXP.DMP fromuser=user_name to user=user_name1", NULL, NULL, SW_SHOWDEFAULT);
      

  6.   

    上面的方法是导.dmp文件的吧,那文本文件改如何导入呢?
      

  7.   

    参考官方帮助:
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch05.htm#1656
      

  8.   

    可不可以在adoquery下执行sqlldr命令