Error in Process code: ORA-06502: PL/SQL: numeric or value error: character to number conversion error
Error in Process code: ORA-06502: PL/SQL: numeric or value error: character to number conversion error
这是我在流程代码中使用的 Plsql 代码,但由于 l_receipt_date 列 ,我收到了字符到数字转换的错误
我需要按照下面提到的 'YYYY-MM-DD' 格式插入日期,所以我在过程中使用了下面的代码,l_receipt_date:=to_char(:P4_RECEIPT_DATE,'YYYY-MM-DD' ); ,因为上面的 line.Here 是我在进程代码中使用的 Plsql 代码,所以我收到错误,但是由于 l_receipt_date,我收到了字符到数字转换的错误列
DECLARE
l_clob CLOB;
l_emp_no NUMBER;
l_status VARCHAR2(100);
l_employee_name VARCHAR2(100);
l_id NUMBER;
l_employee_salary NUMBER;
l_employee_age NUMBER;
l_request_url VARCHAR2(200);
l_body_clob clob;
x_err varchar2(2000);
l_receipt_date varchar2(1000);
begin
l_request_url := 'https://fa-eoxd-test-saasfaprod1.fa.ocs.oraclecloud.com/fscmRestApi/resources/latest/standardReceipts/';
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).value := 'application/json';
l_receipt_date:=to_char(:P4_RECEIPT_DATE,'YYYY-MM-DD');
l_body_clob:='{
"ReceiptNumber":"'||:P4_RECEIPT_NUMBER||'"
,"BusinessUnit":"'||:P4_OPERATING_UNIT_NAME||'"
,"ReceiptMethod":"'||:P4_RECEIPT_METHOD||'"
,"ReceiptDate":"'||l_receipt_date||'"
}';
l_clob :=
APEX_WEB_SERVICE.MAKE_REST_REQUEST(
p_url => l_request_url,
p_http_method => 'POST',
p_username => 'fin.user',
p_password => 'Fusion@123',
p_body => l_body_clob) ;
htp.p(l_clob);
exception when others then
x_err:=sqlerrm;
htp.p(x_err);
END;
P4_RECEIPT_DATE
是一个页面项,所有页面项都是字符串。所以在你可以 TO_CHAR
它到一个不同格式的字符串之前,你首先需要 TO_DATE
它到一个日期。假设当前格式为DD-MON-YYYY
。那么你需要这样做:
l_receipt_date:=to_char(to_date(:P4_RECEIPT_DATE, 'DD-MON-YYYY'),'YYYY-MM-DD');
即
- 获取
P4_RECEIPT_DATE
中的字符串并使用 DD-MON-YYYY. 格式将其转换为 DATE
- 获取该日期并再次将其转换为格式为 YYYY-MM-DD 的字符串。
这是我在流程代码中使用的 Plsql 代码,但由于 l_receipt_date 列 ,我收到了字符到数字转换的错误 我需要按照下面提到的 'YYYY-MM-DD' 格式插入日期,所以我在过程中使用了下面的代码,l_receipt_date:=to_char(:P4_RECEIPT_DATE,'YYYY-MM-DD' ); ,因为上面的 line.Here 是我在进程代码中使用的 Plsql 代码,所以我收到错误,但是由于 l_receipt_date,我收到了字符到数字转换的错误列
DECLARE
l_clob CLOB;
l_emp_no NUMBER;
l_status VARCHAR2(100);
l_employee_name VARCHAR2(100);
l_id NUMBER;
l_employee_salary NUMBER;
l_employee_age NUMBER;
l_request_url VARCHAR2(200);
l_body_clob clob;
x_err varchar2(2000);
l_receipt_date varchar2(1000);
begin
l_request_url := 'https://fa-eoxd-test-saasfaprod1.fa.ocs.oraclecloud.com/fscmRestApi/resources/latest/standardReceipts/';
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).value := 'application/json';
l_receipt_date:=to_char(:P4_RECEIPT_DATE,'YYYY-MM-DD');
l_body_clob:='{
"ReceiptNumber":"'||:P4_RECEIPT_NUMBER||'"
,"BusinessUnit":"'||:P4_OPERATING_UNIT_NAME||'"
,"ReceiptMethod":"'||:P4_RECEIPT_METHOD||'"
,"ReceiptDate":"'||l_receipt_date||'"
}';
l_clob :=
APEX_WEB_SERVICE.MAKE_REST_REQUEST(
p_url => l_request_url,
p_http_method => 'POST',
p_username => 'fin.user',
p_password => 'Fusion@123',
p_body => l_body_clob) ;
htp.p(l_clob);
exception when others then
x_err:=sqlerrm;
htp.p(x_err);
END;
P4_RECEIPT_DATE
是一个页面项,所有页面项都是字符串。所以在你可以 TO_CHAR
它到一个不同格式的字符串之前,你首先需要 TO_DATE
它到一个日期。假设当前格式为DD-MON-YYYY
。那么你需要这样做:
l_receipt_date:=to_char(to_date(:P4_RECEIPT_DATE, 'DD-MON-YYYY'),'YYYY-MM-DD');
即
- 获取
P4_RECEIPT_DATE
中的字符串并使用 DD-MON-YYYY. 格式将其转换为 DATE
- 获取该日期并再次将其转换为格式为 YYYY-MM-DD 的字符串。