Tôi đang cố gắng tạo một thủ tục được lưu trữ yêu cầu một số dữ liệu XML từ một dịch vụ. Tôi đã tìm thấy một số ví dụ trên mạng và tất cả đều hướng đến việc sử dụng gói UTL_HTTP này. Tuy nhiên, mỗi khi tôi cố gắng biên dịch quy trình lưu trữ của mình với lỗi tôi nhận được:Lỗi quy trình được lưu trữ PLS-00201: mã định danh 'UTL_HTTP' phải được khai báo
PLS-00201: identifier 'UTL_HTTP' must be declared
Đây là bộ xương cơ bản của mã tôi muốn sử dụng.
PROCEDURE GET_XML_DATA2 AS
BEGIN
DECLARE
v_soap_request VARCHAR2(32767);
v_soap_response VARCHAR2(32767);
v_http_request UTL_HTTP.req; --Fails here
v_http_response UTL_HTTP.resp; -- Fails here too
v_action VARCHAR2(4000) := '';
BEGIN
null;
END;
END GET_XML_DATA2;
Không thành công trong các dòng được chỉ định và không biên dịch. Tôi đang sử dụng Oracle Express Edition và tôi đã cố gắng cấp cho người dùng quyền thực thi gói đó. Nó không hoạt động. Tôi có thể xem xét điều gì khác? Điều gì khác có thể gây ra điều này? Cảm ơn!
Cảm ơn bạn đã phản hồi! Tôi không thể (vẫn không thể) đăng nhập bằng SYS. Tôi đã thử đăng nhập như SYSTEM và thực hiện lệnh GRANT EXECUTE ON SYS.UTL_HTTP TO my_user. Nó không hoạt động và đã cho tôi lỗi này: Lỗi bắt đầu tại dòng 1 trong lệnh: THỰC HIỆN GRANT TRÊN SYS.UTL_HTTP ĐẾN spotfire Báo cáo lỗi: Lỗi SQL: ORA-00942: bảng hoặc chế độ xem không tồn tại 00942. 00000 - "bảng hoặc khung nhìn không tồn tại" –
'SELECT * FROM dba_objects WHERE object_name = 'UTL_HTTP'' trở lại là gì? Mặc dù tôi nghĩ rằng UTL_HTTP nên tồn tại trong cơ sở dữ liệu của bạn ... Có lẽ nó không có sẵn trong XE? –