後我目前面臨着兩難的選擇:ORDS響應插入
一方面,如果我用AutoREST,我可以輕鬆地獲得POST響應。但是,我無法像我想要的那樣自定義API行爲,例如顯示案例的查詢。
- 我啓用了AutoREST with Table對象。我知道我可以使用
?q={}
來執行查詢。 - 但是我無法查詢大小寫不敏感的數據。
- 例如,
?q={"name":"Chang"}
但我想查找姓名chang的所有日期,而不考慮字母大小寫。 - 我知道我可以定義一個自定義的處理程序來做到這一點,並做爲
?name=chang
查詢。但是,如果目前我做了ords.enable_object
,那麼無論如何要自定義它呢?
- 我啓用了AutoREST with Table對象。我知道我可以使用
另一方面,如果我定義了每個需要的服務,我無法獲得正確的POST響應。
- 我想實現POST服務並在插入後返回某些值(即輸出一些值到POST的響應)。我嘗試了幾種方法,但沒有運氣。
- 我已經嘗試聲明局部變量,但他們不返回。插入後我也試過選擇。不工作。我有一個稱爲
insert_customer
的過程,其中有幾個參數IN
和OUT
參數爲customer_id
。但customer_id
只是無法輸出。
這裏是上午例如我有:
CREATE OR REPLACE PROCEDURE insert_customer (
p_corporate_key IN customers.corporate_key%TYPE,
p_fullname IN customers.fullname%TYPE,
p_email IN customers.email%TYPE,
p_phone IN customers.phone%TYPE,
p_job_title IN customers.job_title%TYPE,
p_department IN customers.department%TYPE,
p_organization IN customers.organization%TYPE,
p_customer_id OUT customers.customer_id%TYPE
)
AS
BEGIN
INSERT INTO customers (corporate_key, fullname, email, phone, job_title, department, organization)
VALUES (p_corporate_key, p_fullname, p_email, p_phone, p_job_title, p_department, p_organization)
RETURN customer_id INTO p_customer_id;
EXCEPTION
WHEN OTHERS
THEN HTP.print(SQLERRM);
END;
/
BEGIN
ORDS.DEFINE_SERVICE(
p_module_name => 'insert.customers' ,
p_base_path => '/customers/',
p_method => 'POST',
p_source => ‘DECLARE
l_customer_id number;
BEGIN
insert_customer(p_corporate_key => :corporate_key,
p_fullname => :fullname,
p_email => :email,
p_phone => :phone,
p_job_title => :job_title,
p_department => :department,
p_organization => :organization
p_customer_id => :l_customer_id);
END;'
);
COMMIT;
END;
customer_id
是由觸發器產生的增量序列。
我想插入一個客戶(包含相關信息),然後返回customer_id
。
編輯:
我已經檢查的程序insert_customer
單獨,它工作正常。
SQL>variable l_id number;
SQL>exec insert_customer('a', 'a', 'a', 'a', 'a', 'a', 'a', :l_id);
PL/SQL procedure successfully completed.
SQL> print l_id
L_ID
----------
102
的,我也於p_source
添加
htp.prn(:corporate_key);
htp.prn(:l_customer_id);
或
htp.prn(:corporate_key);
htp.prn(l_customer_id);
的insert_customer
執行後,END
之前。
但是,只打印出corporate_key
,沒有l_customer_id
。
所以我想知道,分別輸出OUT參數值的程序,但不在ORDS的p_source
內。
我曾嘗試用自己的方式。但仍然沒有工作。請參閱我的問題的編輯部分。謝謝! – fluency03