尝试从平面文件创建一组用户必须使用包来完成



这个主要问题是试图让SQL加载器在包内执行。

procedure addGroup
    is
      num number;
      name1 Varchar2(20);
      load Varchar2(200);
    begin
     load := 'host sqlldr kevonia_workspace/pass123 control = C:UsersKevoniaDesktopDBAusernames.ctl log = C:UsersKevoniaDesktopDBAusernames.log';
     Execute immediate(load);
    for num in  1..10
    loop 
      select username into name1 from loaded where userid=num;
      DBA_PACKAGE.NewUser(name1);
      dbms_output.put_line(name1|| ': was added' );
    end loop;
    end addGroup;

ORA-00900:无效SQL语句

你有几个选择

  1. 创建外部表格然后可以像处理普通表一样操作该表。这是最好的选择。

  2. 如果您没有创建表的权限,并且坚持使用主机命令,请查看这(但真的,不要这样做)。

  3. 同上,但使用dbms_scheduler可执行作业

最新更新