将路径参数值获取到 ORDS prehook
Get path param value into ORDS prehook
有没有办法用 get_cgi_env 从 url 获取路径参数?示例:https://clientes/{codigo}
。我想从 :codigo
路径参数中获取值。
进入端点上的处理程序 GET、POST、PUT 等,可以获得路径参数值,但不清楚如何进入 ORDS prehook。
我有这个函数来获得完整的 url - “QUERY_STRING”部分应该给你参数
FUNCTION request_url RETURN VARCHAR2
IS
l_url VARCHAR2(1024);
BEGIN
l_url := owa_util.get_cgi_env('SERVER_NAME') ||':' ||
owa_util.get_cgi_env('SERVER_PORT') ||
owa_util.get_cgi_env('SCRIPT_NAME') ||
owa_util.get_cgi_env('PATH_INFO') ||
owa_util.get_cgi_env('QUERY_STRING');
RETURN l_url;
EXCEPTION WHEN VALUE_ERROR THEN
RETURN 'unable to retrieve request_url';
END request_url;
您可以通过 owa.cgi_var_name 和 owa.cgi_var_val 访问所有可用的 CGI 变量(owa.num_cgi_vars 用于计数)。
我的 preHook 中有这个 运行ning:
pragma autonomous_transaction;
l_obj json_object_t := json_object_t();
l_json blob;
begin
for i in 1 .. owa.num_cgi_vars loop
l_obj.put(owa.cgi_var_name(i), owa.cgi_var_val(i));
end loop;
l_json := l_obj.to_blob;
insert into rest_access
(id, created, cgi_variables, current_schema)
values
(s_rest_access.nextval, sysdate, l_json, sys_context('userenv', 'current_schema'));
commit;
您可以访问很多值,包括参数。
要在 运行 设置它并记录请求后查看参数列表,只需 运行
select *
from json_table((select json_dataguide(cgi_variables, dbms_json.format_flat) from rest_access),
'$[*]' columns( --
opath varchar2(200) path '$."o:path"',
otype varchar2(40) path '$.type',
olength number path '$."o:length"')) j;
有没有办法用 get_cgi_env 从 url 获取路径参数?示例:https://clientes/{codigo}
。我想从 :codigo
路径参数中获取值。
进入端点上的处理程序 GET、POST、PUT 等,可以获得路径参数值,但不清楚如何进入 ORDS prehook。
我有这个函数来获得完整的 url - “QUERY_STRING”部分应该给你参数
FUNCTION request_url RETURN VARCHAR2
IS
l_url VARCHAR2(1024);
BEGIN
l_url := owa_util.get_cgi_env('SERVER_NAME') ||':' ||
owa_util.get_cgi_env('SERVER_PORT') ||
owa_util.get_cgi_env('SCRIPT_NAME') ||
owa_util.get_cgi_env('PATH_INFO') ||
owa_util.get_cgi_env('QUERY_STRING');
RETURN l_url;
EXCEPTION WHEN VALUE_ERROR THEN
RETURN 'unable to retrieve request_url';
END request_url;
您可以通过 owa.cgi_var_name 和 owa.cgi_var_val 访问所有可用的 CGI 变量(owa.num_cgi_vars 用于计数)。
我的 preHook 中有这个 运行ning:
pragma autonomous_transaction;
l_obj json_object_t := json_object_t();
l_json blob;
begin
for i in 1 .. owa.num_cgi_vars loop
l_obj.put(owa.cgi_var_name(i), owa.cgi_var_val(i));
end loop;
l_json := l_obj.to_blob;
insert into rest_access
(id, created, cgi_variables, current_schema)
values
(s_rest_access.nextval, sysdate, l_json, sys_context('userenv', 'current_schema'));
commit;
您可以访问很多值,包括参数。
要在 运行 设置它并记录请求后查看参数列表,只需 运行
select *
from json_table((select json_dataguide(cgi_variables, dbms_json.format_flat) from rest_access),
'$[*]' columns( --
opath varchar2(200) path '$."o:path"',
otype varchar2(40) path '$.type',
olength number path '$."o:length"')) j;