sy-uname написал(а):
Что-то не работает, а вот что - нет ни кода вызова хранимки, ни текста самой процедуры.
Текст процедуры вот он, если это что-то изменит.
Code:
CREATE OR REPLACE PROCEDURE zhr_itc_get_ora_list2 (
req_string_ IN VARCHAR2,
sort_type_ IN VARCHAR2,
valid_from_ IN NUMBER,
valid_to_ IN NUMBER,
mandt_ IN NUMBER,
uname_ IN VARCHAR2,
datum_ IN VARCHAR2,
useit_ IN VARCHAR2,
start_pos_ IN NUMBER,
max_lines_ IN NUMBER
)
IS
BEGIN
IF sort_type_ = 'R'
THEN
INSERT INTO zitc_ora_exch ( mandt, uname, datum, useit,
ora_rpern, ora_kdate, ora_ksegm, ora_kfile, rel_value,
line_id)
SELECT q_r.*, rownum rn
FROM ( SELECT to_char(ora_mandt), uname_, datum_,
useit_, to_char(ora_rpern), to_char(ora_kdate),
to_char(ora_ksegm), ora_kfile,
contains (ora_blob, req_string_)
FROM zitc_ora_text
WHERE contains (ora_blob, req_string_) > 0
AND ora_mandt = mandt_
AND ora_kdate >= valid_from_
AND ora_kdate <= valid_to_
ORDER BY contains (ora_blob, req_string_) DESC,
ora_rpern ASC, ora_kdate DESC, ora_ksegm ASC,
ora_kfile ASC )
q_r
WHERE ROWNUM BETWEEN start_pos_ AND
start_pos_ + max_lines_ - 1;
COMMIT;
END IF;
IF sort_type_ = 'T'
THEN
INSERT INTO zitc_ora_exch ( mandt, uname, datum, useit, ora_rpern,
ora_kdate, ora_ksegm, ora_kfile, rel_value, line_id)
SELECT q_t.*, rownum rn
FROM ( SELECT to_char(ora_mandt), uname_, datum_, useit_,
to_char(ora_rpern), to_char(ora_kdate),
to_char(ora_ksegm), ora_kfile,
contains (ora_blob, req_string_)
FROM zitc_ora_text
WHERE contains (ora_blob, req_string_) > 0
AND ora_mandt = mandt_
AND ora_kdate >= valid_from_
AND ora_kdate <= valid_to_
ORDER BY ora_kdate DESC, ora_rpern ASC,
ora_ksegm ASC, ora_kfile ASC )
q_t
WHERE ROWNUM BETWEEN start_pos_ AND
start_pos_ + max_lines_ - 1;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
BEGIN
ROLLBACK;
END;
END;
/
Вызов типовой
Code:
EXEC SQL.
EXECUTE PROCEDURE ZHR_ITC_GET_ORA_LIST2 (
IN :lv_REQ_STRING,
IN :IM_SORT_TYPE,
IN :IM_VALID_FROM,
IN :lv_control_date,
IN :lv_MANDT,
IN :lv_UNAME,
IN :lv_DATUM,
IN :lv_UZEIT,
IN :lv_stp,
IN :lv_mlin )
ENDEXEC.
Но я так полагаю, что не в параметрах вызова проблема - на системе разработки все прекрасно работает отовысюду. На QAS - только из-под консоли.
sy-uname написал(а):
Да и точно ли оно тас в системе такое, какое хотели залить?
Если закоментировать вызов процедуры, пройтись отладчиком до точки вызова, вызвать вручную на консоли процедуру, а затем продолжить выполнение в SAP - все отработает правильно. Это то ли проблема синхронизации индекса на Oracle (но тогда старнно почему оно нормально работает на разработке), то ли проблема настроек в SAP (но тогда непонятно каких настроек - процедура-то находится и вызывается), то ли еще непонятно что.