如何解决如何从Shell脚本执行oracle存储过程
我是oracle存储过程的新手,正在尝试在shell脚本中执行oracle存储过程。存储过程将输出消耗的数据库模式内存,并将存储过程的输出与我计划的阈值(例如70%)进行比较,然后通过电子邮件发送给邮件发件人。但是我被困在存储过程的输出无法打印的地方
我尝试使用Set serveroutput on
来将输出输出到终端或捕获到变量中,但没有成功。不知道我在想什么。下面是test.sh
#!/bin/bash
l_user='CCS_EB_U'
l_psw='password'
l_conn_string='CSFPRD'
sql_error=`sqlplus -silent $l_user/$l_psw@$l_conn_string <<END
WHENEVER sqlERROR EXIT 1
Set timing on
Set serveroutput on
declare
--Set server_on;
p_table_space_name_o varchar (100);
p_tot_table_space_size_gb_o varchar2(200);
p_free_space_gb_o varchar2(100);
begin
dbms_output.put_line('Start');
apps.XXCSS_MCE_AM_AUDIT_PKG.get_csf_table_space (p_table_space_name_o,p_tot_table_space_size_gb_o,p_free_space_gb_o);
dbms_output.put_line(p_table_space_name_o);
dbms_output.put_line(p_tot_table_space_size_gb_o);
dbms_output.put_line(p_free_space_gb_o);
end ;
/
EXIT;
END`
Result=$?
echo $Result
if [[ $Result -ne 0 ]]
then
echo "${sql_error}"
echo "Error calling the PL/sql procedure."
exit $Result
else
echo "PL/sql Procedure executed successfully."
exit 0
fi
我只是输出为
0
PL/sql Procedure executed successfully.
但是所需的输出(当我单独执行存储过程时)是
Start
CSSD1
13844.875
3250.510498046875
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。