0
#!/usr/bin/env bash

sqlplus -s user@lnpfvd1.world/password<<!

   declare 

   var_truc_result VARCHAR2(255);

   begin 

   brr_truncate_generic_procedure('TABLE_NAME', var_truc_result);

   end;
/
!

我们正在调用brr_truncate_generic_procedurewhich 在变量内部设置一些值(成功/失败)var_truc_result

我们只想在 unix shell 变量中使用这个变量,以便我们可以在此基础上放置一些逻辑。

4

1 回答 1

0

我现在不能自己测试这个,但是这样的东西应该可以工作:

result=`sqlplus / <<SCRIPT| grep ^result | sed "s/^result: //"
set serveroutput on
declare
    var_truc_result VARCHAR2(255);
begin
   brr_truncate_generic_procedure('TABLE_NAME', var_truc_result);
   dbms_output.put_line( 'result: ' || var_truc_result);
end;
/
exit
SCRIPT`

echo var_truc_result is: $result

你也可以试试

select var_truc_result as "answer"
from dual

代替 dbms_output 行,但您需要调整 grep/sed

编辑:

我在 AskTom 上找到了这个讨论,它提供了上述内容的一些变化等,这也可能有所帮助

于 2013-03-19T16:56:24.600 回答