如何从shell调用带有参数的oracle过程

时间:2013-09-03 10:55:35

标签: oracle shell stored-procedures

我有一个添加两个数字的过程。我想从shell.i调用该过程可以调用没有参数的过程。对于前

 create or replace procedure printTheName
  is 
  begin
 dbms_output.put_line('This is a procedure'):
 end;
 /

这是打印消息的过程。我可以使用这个

从shell调用它
#!/bin/sh
sqlplus -s system/oracle10g@orcl<<END
execute printTheName();
commit;

这个运行正常现在我有一个程序,它添加两个数字我必须从shell调用这是程序。

declare
  a number(2);
  b number(2);
  c number(2);
begin
  a:=&a;
  b:=&b;
  c:=a+b;
  dbms_output.put_line(a|| ' + '||b||' = '||c);
end;

2 个答案:

答案 0 :(得分:0)

使用管道将命令传递给 sqlplus

echo "execute printTheName(10,10);
commit;
execute procedure2();
" | sqlplus system/oracle10g@orcl

请注意,您无法在双引号内放置任意数量的 sqlplus 命令。

答案 1 :(得分:0)

路西法,重定向到输出:

{ 
echo "execute printTheName(10,10);
commit;
execute procedure2();
" | sqlplus system/oracle10g@orcl 
} > fileout.txt