你说的copy是sqlplus提供的功能,我有点儿想不通你怎么能做到用delphi来调~

解决方案 »

  1.   

    楼上所说的的确对,就是因为执行不了,才来请教各位高手提供帮助。
    如何在Delphi下调用SqlPlus copy命令?
      

  2.   

    是否可以考虑用别的方法,如使用job定时自动插入、使用DB-LINK将远程表做本地表用INSERT。
      

  3.   

    1)把你要做的工作写成脚本,甚至你可以在程序中动态生成你的脚本,假定保存为c:\a.sql
    2)在Delphi中用ShellExecute执行该脚本,参数为sqlplus internal/oracle@server @c:\a.sql
      

  4.   

    如果非要在delphi中实现的话,你还是用BDLINK吧
      

  5.   

    可以用movingboy的做法,生成临时文件,调用sqlplus执行
    或者写成unix的shell脚本,不过好像delphi调用不了
    为什么一定要用copy命令,这是sqlplus专用的???
      

  6.   

    再delphi中使用批拷贝,来实现数据复制的问题/
      

  7.   

    我需要批量拷贝录入数据,而且与远程数据库的连接随时都有可能被断开,所以考虑到拷贝数据的完整性决定用sql plus copy命令。
        结合这种情况,那位高手有更好的解决方法,请赐教。
      

  8.   

    我先建立的DBLINK,然后用sql plus copy命令执行远程表拷贝。
    moveingBoy的方法应该可以!
      

  9.   

    谁有sql plus copy 命令的详细资料,可否给小弟一套!
    谢谢!
    [email protected]
      

  10.   

    我这里没有电子资料,写一下吧
    copy from username/password@dbname
    to username1/pw1@dbname1
    append(create/insert/replace) tablename(col1,col2...)
    using select....from ...;
    append:添加到表上,如果tablename表不存在,则建立此表
    create:如果tablename表存在,则出错
    insert:添加到表中,如果tablename表不存在,则出错
    replace:替换表中数据,如果tablename表不存在,则建立此表.
      

  11.   

    To bzszp(SongZip):我是这样用的:
    set Copycommit 1
    Set arraySize 100
    Copy from username/password@dbname-
     to username1/pw1@dbname1-
      append  dbname-
     Using  Select * from dbname1在sql/plus里前几次执行时报错:ORA-01458: 内部变量字符串长度非法。在多执行几次,就成功拉!这是怎么回事???
      

  12.   

    不好意思,刚才用错用户名了!To bzszp(SongZip):我是这样用的:
    set Copycommit 1
    Set arraySize 100
    Copy from username/password@dbname-
     to username1/pw1@dbname1-
      append  dbname-
     Using  Select * from dbname1在sql/plus里前几次执行时报错:ORA-01458: 内部变量字符串长度非法。在多执行几次,就成功拉!这是怎么回事???
      

  13.   

    刚才写错了:Sorry!我是这样用的:set Copycommit 1
    Set arraySize 100
    Copy from username/password@dbname-
     to username1/pw1@dbname1-
      append  Tablename-
     Using  Select * from Tablename1在sql/plus里前几次执行时报错:ORA-01458: 内部变量字符串长度非法。在多执行几次,就成功拉!这是怎么回事???
      

  14.   

    maybe:ORA-01458 invalid length inside variable character string Cause An attempt was made to bind or define a variable character string with a buffer length less than the two-byte minimum requirement. 
    Action Increase the buffer size or use a different type. 
      

  15.   

    楼上的您好:Oracle 的设置问题吗?小弟英文很差,能否用中文解释一下!感激不尽!是否和Oracle版本有关系呢??我用的是Oracle8.1.6。
      

  16.   

    增加初始化参数db_block_buffers(在init.ora文件里面)
    改完后
    重新启动数据库
      

  17.   

    TO: jlandzpa(ORA-00600)、 bzszp(SongZip)我的init.ora是这样配置的,不知行不行??open_cursors = 100
    max_enabled_roles = 30
    db_file_multiblock_read_count = 8db_block_buffers = 8192shared_pool_size = 62428800large_pool_size = 914400
    java_pool_size = 30971520log_checkpoint_interval = 10000
    log_checkpoint_timeout = 1800processes = 1015parallel_max_servers = 5log_buffer = 32768