书上说,用“记事本”新建一个控制文件case1.ctl,保存一些内容,我保存记事本名字为case1.ctl,要运行SQLLDR SCOTT/TIGER CONTROL=LDR_case1.ctl命令,提示未找到文件,想问这个控制文件要放到哪个文件里,输入命令才能找到?

解决方案 »

  1.   

    C:\Documents and Settings\Administrator>sqlldrSQL*Loader: Release 10.2.0.1.0 - Production on 星期四 6月 9 10:52:26 2011Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    用法: SQLLDR keyword=value [,keyword=value,...]有效的关键字:    userid -- ORACLE 用户名/口令
       control -- 控制文件名
           log -- 日志文件名
           bad -- 错误文件名
          data -- 数据文件名
       discard -- 废弃文件名
    discardmax -- 允许废弃的文件的数目         (全部默认)
          skip -- 要跳过的逻辑记录的数目  (默认 0)
          load -- 要加载的逻辑记录的数目  (全部默认)
        errors -- 允许的错误的数目         (默认 50)
          rows -- 常规路径绑定数组中或直接路径保存数据间的行数
                   (默认: 常规路径 64, 所有直接路径)
      bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)
        silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)
        direct -- 使用直接路径                     (默认 FALSE)
       parfile -- 参数文件: 包含参数说明的文件的名称
      parallel -- 执行并行加载                    (默认 FALSE)
          file -- 要从以下对象中分配区的文件
    skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)
    skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)
    commit_discontinued -- 提交加载中断时已加载的行  (默认 FALSE)
      readsize -- 读取缓冲区的大小               (默认 1048576)
    external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE  (默认 NOT_USED)
    columnarrayrows -- 直接路径列数组的行数  (默认 5000)
    streamsize -- 直接路径流缓冲区的大小 (以字节计)  (默认 256000)
    multithreading -- 在直接路径中使用多线程
     resumable -- 启用或禁用当前的可恢复会话  (默认 FALSE)
    resumable_name -- 有助于标识可恢复语句的文本字符串
    resumable_timeout -- RESUMABLE 的等待时间 (以秒计)  (默认 7200)
    date_cache -- 日期转换高速缓存的大小 (以条目计)  (默认 1000)PLEASE NOTE: 命令行参数可以由位置或关键字指定
    。前者的例子是 'sqlload
    scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo
    userid=scott/tiger'.位置指定参数的时间必须早于
    但不可迟于由关键字指定的参数。例如,
    允许 'sqlldr scott/tiger control=foo logfile=log', 但是
    不允许 'sqlldr scott/tiger control=foo log', 即使
    参数 'log' 的位置正确。-- 你的控制文件应该存放在当前命令提示符的路径下,
    -- 例如上面我的命令提示符的路径是:C:\Documents and Settings\Administrator>-- 同理:data 表示是你的数据文件名,
    -- 如果你没有引用全部路径(只引用了文件名,sqlldr会默认在你的命令提示符的当前路径下去查找!
      

  2.   

    你保存时命名为:case1.ctl
    指定参数时文件名:LDR_case1.ctl
    sqlldr COTT/TIGER CONTROL=LDR_case1.ctl还有如果执行sqlldr命令时不在你case1.ctl文件所在目录,
    请在文件名前加上全路径。如:文件存放在c:\case1.ctl,则
    SQLLDR SCOTT/TIGER CONTROL=c:\case1.ctl
      

  3.   


    -- 最好引用全路径,例如:
    -- 如果我的控制文件存在在C盘根目录下,我可以:
    SQLLDR SCOTT/TIGER CONTROL=C:\LDR_case1.ctl
      

  4.   

    我把这个命名case1.ctl的记事本文件放在f盘了,可输入SQLLDR SCOTT/TIGER CONTROL=e:\case1.ctl
    还是显示SQL*Loader-500:无法打开文件(f:\case1.ctl)
           SQL*Loader-553:未找到文件
            SQL*Loader-509:系统错误:系统找不到指定的文件。
    补充:这个记事本文件到底命名case1.ctl还是ldr—case1.ctl?求解!
      

  5.   


    --*(1)注意文件的路径(文件到底放在哪里?你引用的文件路径是否跟存放路径一致)
    -- *(2)注意其文件的扩展名,最好别选择“隐藏已知文件类型的扩展名”!
    --   设置步骤:打开控制文件所在目录,在其窗口的
    --   “工具栏”上点击“工具”----> “文件夹选项”----> “查看" ----> “隐藏已知文件类型的扩展名”,将前面的构去去掉!
      

  6.   

    打错了,输入的事SQLLDR SCOTT/TIGER CONTROL=f:\case1.ctl
    还是显示SQL*Loader-500:无法打开文件(f:\case1.ctl)
      SQL*Loader-553:未找到文件
      SQL*Loader-509:系统错误:系统找不到指定的文件。
    还有,这个记事本文件到底命名case1.ctl还是ldr—case1.ctl?求解!很纠结
      

  7.   

    SQLLDR SCOTT/TIGER CONTROL=file_path\case1.ctl
     
      

  8.   

    还有,这个记事本文件到底命名case1.ctl还是ldr—case1.ctl?晕,这两个地方地文件名要一致,有什么纠结的。当然都是case1.ctl在指定参数时前面加个ldr干什么?画蛇添足?