1
의 내부 저장 프로 시저를 호출 할 수 없습니다 나는이 절차를 가지고 :다른 절차
PROCEDURE insert_change_history(
client_number_l history.client_number%TYPE,
change_date_l history.change_date%TYPE,
field_name_l history.field_name%TYPE,
new_value_l history.new_value%TYPE,
action_performer_l history.action_performer%TYPE
) AS
old_value_l history.old_value%TYPE;
BEGIN
SELECT new_value into old_value_l from history;
IF old_value_l = new_value_l THEN CALL load_client_numbers();
END IF
END insert_change_history;
당신은 내가 if 문 내부 load_client_numbers()
를 호출하기 위해 노력하고있어,하지만이 작동하지 않습니다 볼 수 있듯이.
Error(4017,44): PLS-00103: Encountered the symbol "LOAD_CLIENT_NUMBERS" when expecting one of the following: := . (@ % ; The symbol ":=" was substituted for "LOAD_CLIENT_NUMBERS" to continue.
Error(4022,1): PLS-00103: Encountered the symbol "END" when expecting one of the following: ; The symbol ";" was substituted for "END" to continue.
가 load_client_numbers()
입니다 :
PROCEDURE load_client_numbers(
result_o OUT CLOB
) AS
l_data hub_cursor;
number_l plan.client_number%TYPE;
name_l details.client_name%TYPE;
l_jsonArray json_list;
l_jsonObj json;
l_obj_out json;
BEGIN
OPEN l_data FOR
SELECT DISTINCT rp.number, cd.name
FROM plan rp
FULL JOIN details cd ON rp.number = cd.number
ORDER BY number;
l_jsonArray := json_list();
LOOP
FETCH l_data INTO
number_l, name_l;
EXIT WHEN l_data%NOTFOUND;
l_jsonObj := json();
l_jsonObj.put('Number', number_l || '/' || client_name_l);
-- l_jsonObj.put('Name', name_l);
l_jsonArray.append(l_jsonObj.to_json_value);
END LOOP;
CLOSE l_data;
l_obj_out := json();
l_obj_out.put('data',l_jsonArray);
result_o := ' ';
l_obj_out.to_clob(result_o);
END load_client_numbers;
가 왜 오류를 얻고 나는 다음과 같은 오류가 받고 있어요? 나는 정말 작은 것을 놓치고있는 것을 알고 있지만, 나는 오라클의 프로가 아니기 때문에 그것을 발견 할 수는 없습니다.
IF old_value_l = new_value_l THEN load_client_numbers(param);
END IF;
(NO CALL
) 여기서 param
가 CLOB처럼
와우. 큰 감사 !!! 그것은 일했다 !!! 지금 당장은 할 수 없으므로 9 분 안에 답을 수락 할 것입니다. 다시 한 번 감사드립니다! – Slim