这个主要问题是试图让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语句
你有几个选择
-
创建外部表格然后可以像处理普通表一样操作该表。这是最好的选择。
-
如果您没有创建表的权限,并且坚持使用主机命令,请查看这(但真的,不要这样做)。
-
同上,但使用
dbms_scheduler
可执行作业