2016-04-02 26 views
0

Oracle çevrimiçi öğreticiler ardından 12c 12.1.0.2 SQL Geliştirici 4.1.3.20Oracle ords'ün 3.0.4 SONRASI PL/SQL Prosedürü 400

(hayır APEX) ve Otomatik Etkinleştirme özelliği yüklü ords'ün ince dahil olmak üzere çalışır var Hatalı İstek Etkin (emp) tabloya POST, böylece ortam Tamam görünüyor. Ancak bir POST'ta bir PL/SQL hizmeti tanımlamaya çalıştığımda, hiçbir yere ulaşamadım. postacı içinde

-- ORDS has been started in Standalone mode in SQL developer here 

CREATE OR REPLACE PROCEDURE test_proc IS 
BEGIN 
    INSERT INTO emp (empno, ename) VALUES (10, 'TEST'); 
END test_proc; 
/

BEGIN 
    ORDS.DEFINE_SERVICE(
     p_module_name => 'test' , 
     p_base_path => 'test/', 
     p_pattern  => 'simple_insert/', 
     p_method  => 'POST', 
     p_source_type => ords.source_type_plsql, 
     p_source => 'BEGIN 
    hr.test_proc; 
END;'); 
COMMIT; 
END; 
/

-- At this point the service is defined and running, testing with Postman yields "400 Bad Request" 

GRANT EXECUTE ON hr.test_proc TO APEX_PUBLIC_USER; -- Despite being decoupled from APEX this  username still remains in ORDS 3.0.4, appears in .\ords\conf\apex.xml 

-- Same error as before, having the priv makes no difference 

Hata mesajları: İşte hizmet tanımı var

400 Bad Request 
mapped request using: /hr/* to: ORDS:apex_pu.HR 
BadRequestException [statusCode=400, reasons=[Expected one of: <<{,[>> but got: <>]] 

cevap

3

Bununla hiçbir uzman değilim, ama sadece bu sorunu yaşamıştır. Benim için çözüm, istek gövdesinde (rutininiz kullanılmıyor olsa bile) bir şey iletmekti. Eğer bir GET yöntemi kullanarak çalıştı varsa, herhangi bir şey geçmesine gerek olmazdı

{} 

ancak POST ihtiyacı:

Hatta bu çalıştı. (ve POST'u kullanmam gerektiğini sanıyorum - benim yaptığım gibi).

İyi şanslar