-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdynamicQuery.sql
46 lines (45 loc) · 1.7 KB
/
dynamicQuery.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* This is an example dynamic sql query that is used in a APEX report.
PLease reference this video for more details.
*/
declare
v_sql varchar2(32000);
begin
--If all the terms are null, display all resumes in the report.
if (:P1_DOC_QUERY is null) AND (:P1_FIRSTWORD is null) AND (:P1_SECONDWORD is null) then
--Return all resumes
v_sql := q'~
select ROWID as "ROWID",
DOC_ID as "ID",
TITLE as "Title",
SUBMITTED_BY as "Submitted By:",
sys.dbms_lob.getlength(RESUME) as "Resume",
MIMETYPE as "file Type",
CREATED_DATE as "Created On",
FILENAME as "File Name"
from RESUME
~';
--Do a Full text query.
elsif (:P1_FIRSTWORD is null) AND (:P1_SECONDWORD is null) then
v_sql := q'~
select ROWID as "ROWID",
DOC_ID as "ID", TITLE as "Title", SUBMITTED_BY as "Submitted By:",
sys.dbms_lob.getlength(RESUME) as "Resume", MIMETYPE as "file Type", CREATED_DATE as "Created On",
FILENAME as "File Name"
from RESUME WHERE CONTAINS(resume, '~'
||:P1_DOC_QUERY||
q'~', 1) > 0
~';
else
v_sql := q'~
select ROWID as "ROWID",
DOC_ID as "ID", TITLE as "Title", SUBMITTED_BY as "Submitted By:",
sys.dbms_lob.getlength(RESUME) as "Resume", MIMETYPE as "file Type", CREATED_DATE as "Created On",
FILENAME as "File Name"
from RESUME WHERE CONTAINS(resume,'near((~'||:P1_FIRSTWORD||q'~,~'||:P1_SECONDWORD||q'~),~'||:P1_PROXIMITY||q'~)',1) > 0
~';
end if;
-- APEX_DEBUG.ENABLE(apex_debug.c_log_level_info);
-- apex_debug.message(p_message => 'Chip enabled Debug. SQL below:');
-- apex_debug.message(p_message => v_sql);
return v_sql;
end;