我在oracle服务器的shell脚本.prog中有以下代码 当我打电话给程序时
DBMS_OUTPUT.PUT_LINE(x_return_status|| ln_rep_req_id);
将返回0,这很奇怪,我尝试在oracle中提交并发请求,并且它可以成功执行,我缺少什么?我无法在shell脚本中使用它。
echo "1_FILE_NAME_String:"${DOWNLOADFILE}";2_USER_ID_String:"${2}";3_FILE_ID_String:"${ln_group_id}";4_REQUEST_ID_String:"${4}
sqlplus $LOGIN <<ENDOFSQL
connect $LOGIN
SET SERVEROUTPUT ON
DECLARE
ld_int_date date;
P_ERRBUFF VARCHAR2(4000);
P_ERRCODE VARCHAR2(100);
P_FILE_NAME VARCHAR2(250);
P_REQUEST_ID VARCHAR2(100);
P_ERROR_CODE VARCHAR2(100);
x_return_status VARCHAR2 (3000);
ln_rep_req_id NUMBER;
BEGIN
P_FILE_NAME := '${DOWNLOADFILE}';
P_REQUEST_ID := TO_CHAR(${4});
P_ERROR_CODE := 'ERR_003_Incorrect_file_format';
ln_rep_req_id:= fnd_request.submit_request(application => 'XXGL',
program => 'XXGL_PRCERP_INT_BAD',
description => NULL,
start_time => NULL,
sub_request => FALSE,
argument1 => P_FILE_NAME,
argument2 => P_REQUEST_ID,
argument3 => P_ERROR_CODE
);
DBMS_OUTPUT.PUT_LINE(x_return_status|| ln_rep_req_id);
DBMS_OUTPUT.PUT_LINE(x_return_status|| P_FILE_NAME);
DBMS_OUTPUT.PUT_LINE(x_return_status|| P_REQUEST_ID);
DBMS_OUTPUT.PUT_LINE(x_return_status|| P_ERROR_CODE);
END;
/
exit
ENDOFSQL
答案 0 :(得分:1)
如果FND_REQUEST.SUBMIT_REQUEST
返回零,则表示发生了错误。要找出错误是什么,您需要致电FND_MESSAGE.RETRIEVE
和FND_MESSAGE.ERROR
来检索,格式化并显示错误。
Documentation for FND_REQUEST.SUBMIT_REQUEST
here
Documentation for FND_MESSAGE.RETRIEVE
and FND_MESSAGE.ERROR
here
分享并享受。
答案 1 :(得分:0)
我忘记在我的程序中包含以下内容,因此无法运行。谢谢你的帮助。
fnd_global.apps_initialize(user_id =&gt; lc_user_id, resp_id =&gt; ln_resp_id, resp_appl_id =&gt; ln_appl_id);