Accent insensitive Search - plz help me correcting this query
Hello,
I just realized that with that query, if I search for "Montreal" (without the accent), I have all the following results, which is what I want
SELECT
"ID","TIT"
from "REGDOSSIERS" "RDO"
where
TRANSLATE(UPPER("TIT"),'ÀÂÉÈÊÎÔÛÙÜ','AAEEEIOUUU')
like upper(nvl(replace('%' || "P1_REPORT_SEARCH || '%',' ','%'),"TIT"))
RESULTS
TIT
Annuaires Lovell (Montréal et banlieue)
Juridiction royale de Montréal. Dossiers, 1677-1769
Montreal Witness, 1845-1938
{code}
But how to change it so when I look for: "Montréal" (with the accent) , I have also the same results? Right now, with Montréal, I have nothing
thanks,
Roseline
Edited by: Roseline on 2009-10-01 18:58
Edited by: Roseline on Oct 1, 2009 7:34 PM
If you are on Oracle 10g you can use regexp expressions to do the search.
Example
with testdata as (select 'Montreal' txt from dual
union all select 'Montréal' txt from dual
union all select 'Montreâl' txt from dual
union all select 'Montreaux' txt from dual)
/* end of test data creation */
select txt from testdata
where regexp_like (txt, 'Montr[[=e=]]al');
txt
Montreal
Montréal[[=e=]] would be an equivalence class for the letter "e" and includes also searches for é, è, ê etc.
The best solution mainly depends how your search string is build.
If you just want to sort, then the nlssort function would be useful.
Mentioning Nlssort I remembered there is a much better way to implement Accent insensitive search. You just need to set your NLS_SORT parameter correctly. Either to BINARY_AI (the AI means accent and case insensitiv) or add _AI to your nls langage.
example
ALTER SESSION SET NLS_COMP=LINGUISTIC;
alter session set nls_sort = 'FRENCH';
with testdata as (select 'Montreal' txt from dual
union all select 'Montréal' txt from dual
union all select 'Montreâl' txt from dual
union all select 'Montreaux' txt from dual)
/* end of test data creation */
select txt from testdata
where txt = 'MONTREAL';
no rows selects
/* now change the nls sorting */
alter session set nls_sort = 'FRENCH_AI';
with testdata as (select 'Montreal' txt from dual
union all select 'Montréal' txt from dual
union all select 'Montreâl' txt from dual
union all select 'Montreaux' txt from dual)
/* end of test data creation */
select txt from testdata
where txt = 'MONTREAL';
txt
Montreal
Montréal
MontreâlEdited by: Sven W. on Oct 2, 2009 8:34 AM
Edited by: Sven W. on Oct 2, 2009 10:22 AM - corrected misleading regexp example.
Similar Messages
-
Hi,
Can you’ll please help me with this query.
Here is a little bit of background:
One title can have multiple items associated with it.
Table: TITLE has the master list of titles. TITLE_ID is the primary key.
Table: ITEM has the master list of all items. ITEM_ID is the primary. This table also has the TITLE_ID which stores title for this item.
Table: ITEM_STATUS has fields ITEM_ID and STATUS_ID. This field contains statuses for items. But not all items contained in the table ITEM are in this table.
I want to find TITLE_ID’s whose all items (all ITEM_ID in table ITEM having same value for TITLE_ID) have a particular status (for example STATUS_ID = 2) in table ITEM_STATUS.
Let’s say TITLE_ID = 1 has 5 items in table ITEM_ID and only 4 items out of it in table ITEM_STATUS with STATUS_ID = 2, then this TITLE_ID should not come. OR
Let’s say TITLE_ID = 1 has 5 items in table ITEM_ID and all these 5 items are in table ITEM_STATUS but only 1 has STATUS_ID = 2, then this TITLE_ID should also not come
In the above case only if all 5 items are contained in table ITEM_STATUS have STATUS_ID = 2 then this TITLE_ID should be reported by the query.
What should be the query like for this one, I am fairly new to SQL so plz guide me.
Thank you,
RajaI haven't tested the query below. Try it and let me know for any issues:
SELECT DISTINCT t.title_id
FROM title t,
item i,
item_status its
WHERE t.title_id = i.title_id
AND i.item_id = its.item_id
AND NOT EXISTS (
SELECT 1
FROM item_status its1
WHERE its1.item_id = i.item_id
AND status_id <> 'YOUR_ITEM_STATUS'
) -
Plz help in tuning this query......
SELECT "LAN","VEF_REF_NO","VF_TYPE_CODE","APPLICANT_TYPE","MANDATORY","OPTIONAL","COMPLETE","DT_COMPLETED","REFIRENO","ROLE","USER_ID","DT_LASTUPDATED","TEMPLATEFIRED"
FROM T_VER_STRATEGY_DETAILS M
WHERE VF_TYPE_CODE =1 AND
APPLICANT_TYPE ='A' AND
DT_LASTUPDATED=
(SELECT MAX(DT_LASTUPDATED)
FROM T_VER_STRATEGY_DETAILS
WHERE LAN = M.LAN AND
VF_TYPE_CODE =1 AND APPLICANT_TYPE ='A')
This seems to be a correlated query.
i tried using combined index on
(VF_TYPE_CODE ,APPLICANT_TYPE ,DT_LASTUPDATED)
and another index on
(LAN,VF_TYPE_CODE ,APPLICANT_TYPE ) but the plan or cost remains unchained.
plz help[url http://forums.oracle.com/forums/thread.jspa?threadID=501834&tstart=0]When your query takes too long...
-
Plz help to make this query......very urgent
I ve two tables <br>
<br>
First one is <b>grn_dtl</b> containing following fields <br> <br> <br>
<u><b>
item_code ent_dt qty doc_no </u></b><br>
11001318 09/09/2003 5 56300501 <br>
11001318 11/09/2004 9 56300502 <br>
11001318 12/05/2005 2 56300503 <br>
11001319 22/06/2004 0 56300504 <br>
11001320 09/06/2005 0 56300505 <br>
11001320 11/08/2004 8 56300506 <br>
11001320 30/05/2005 4 56300507 <br>
11001320 21/06/2003 1 56300508 <br>
11001321 25/09/2004 1 56300509 <br>
11001321 15/07/2004 1 56300510 <br>
11001321 01/08/2004 2 56300511 <br>
11001322 02/06/2004 1 56300512 <br>
11001322 22/06/2004 2 56300513 <br>
11001323 12/09/2004 1 56300514 <br>
11001323 08/05/2004 4 56300515 <br>
11001323 17/08/2004 5 56300516 <br>
11001323 28/06/2004 2 56300517 <br>
<br><br>
second one is <b>item_mst</B> containing following fields <br>
<br>
<u><b>
item_code description leadtim kanbandate</u></b><br>
11001318 aaaaaaaaaaa 15 22/04/2004<br>
11001319 aaaaaaaaaaa 15 02/12/2004<br>
11001320 aaaaaaaaaaa 15 14/07/2005<br>
11001321 aaaaaaaaaaa 15 23/02/2004<br>
11001322 aaaaaaaaaaa 15 05/10/2004<br>
11001323 aaaaaaaaaaa 15 17/05/2004<br>
11001324 aaaaaaaaaaa 15 27/12/2004<br>
11001325 aaaaaaaaaaa 15 07/08/2004<br>
<br><br><br><b>
From the above two tables I want the combine SQL query which will display item_code its description ,kanbandate from item_mst table and will also display the minimum ent_dt of each corresponding item_code alongwith the qty and doc_no.the item_code should not be repeated .<br>
I want to run the query from sql query analyzer</b><br><br>
the result should be like this<br><br>
<b></u>item_code desc ent_dt qty doc_no</b></u>
<br>
11001318 aaaaaaaaaaa 09/09/2003 5 56300501<br>
11001319 aaaaaaaaaaa 22/06/2004 0 56300504<br>
11001320 aaaaaaaaaaa 21/06/2003 1 56300508<br>
11001321 aaaaaaaaaaa 15/07/2004 1 56300510<br>
11001322 aaaaaaaaaaa 02/06/2004 1 56300513<br>
11001323 aaaaaaaaaaa 08/05/2004 4 56300515<br>
<br>
<br>
plz help me out ASAP
null
Message was edited by:
aanchal_2008can you try this,
SELECT DISTINCT im.item_code,
im.descR,
gd.ent_dt,
gd.qty,
gd.doc_no
FROM item_mst im,
grn_dtl gd
WHERE im.item_code = gd.item_code (+)
AND NOT EXISTS (
SELECT 'later detail'
FROM grn_dtl gd2
WHERE gd2.item_code = gd.item_code
AND gd2.ent_dt > gd.ent_dt)
ITEM_CODE DESCR ENT_DT QTY DOC_NO
11001318 aaaaaaaaaaa 2/12/2005 6 563005
11001319 aaaaaaaaaaa 6/22/2004 0 563005
11001320 aaaaaaaaaaa 6/9/2005 0 563005
11001321 aaaaaaaaaaa 12/5/2005 5 563005
11001322 aaaaaaaaaaa 6/22/2004 2 563005
11001323 aaaaaaaaaaa 9/12/2004 1 563005
11001324 aaaaaa
11001325 aaaaaa
8 rows selected -
i need to get each manager name, his department name and for each year that is for 81,82,83,84 count of employee's under that manager from emp and dept tables .
thanks in advance
select distinct deptno, TO_CHAR (HIREDATE, 'YY'), count(*) from emp group by TO_CHAR(HIREDATE, 'YY'), DEPTNO ORDER BY TO_CHAR(HIREDATE, 'YY'), DEPTNO;
the above query returns me count of employees ,year and deptno
SELECT DISTINCT E2.ENAME , E1.ENAME, E1.DEPTNO, E1.MGR, E1.EMPNO, E1.SAL, D.DNAME, D.LOC FROM EMP E1, EMP E2, DEPT D WHERE E1.MGR = E2.EMPNO AND E1.DEPTNO = D.DEPTNO ORDER BY E1.DEPTNO;
this query returned me manager names and employees under them
Message was edited by:
user450660At that point you're not too far off, you have most of what you need. In general, any time you see the use of DISTINCT it's a sign that either your query or your data model isn't designed quite right.
SELECT m.ename,
d.dname,
TO_CHAR (e.hiredate, 'YY') AS hire_year,
COUNT(*) AS emp_count
FROM emp e, emp m, dept d
WHERE e.mgr = m.empno
AND m.deptno = d.deptno
GROUP BY
m.ename,
d.dname,
TO_CHAR (e.hiredate, 'YY'); -
Plz help me in this query for the tree
hi All
I want to bulid tree that start with for example
schema name "scott"
then table "dept,emp
then ename in table emp
root scott
parent dept
child emp_name
please help me in the query ?user222 wrote:
any help my dearsIf you can draw one simple tree example. Then it will be easy to create query. Because i am confuse about the output. Just draw one example of your desired output tree. Then it will help to find solution.
And while writing query or any example so use the 6 digit before and after your query or example to keep the formatting in orignal format. Otherwise it becomes hard to read.
For more information see FAQ on right corner for page.
-Ammad -
Plz help in building this query .
dear gurus i have problem i have two tables namely purchases
product_id,invoice_no,invoice_date,purchase_rate,quantity
and
sales
product_id,invoice_no,invoice_date,sales_rate,quantity
i have to select sales.product_id,sales.quantity*sales.sales_rate and average of (purchase_rate*purchae.quantity) i.e average purchase price of particular product i.e. group by product_id and purchase price in between particular dates but i m unable to find any good soloution. any help plz
nullI'm not sure I understand your grouping goal, but...
select sales.product_id,
sales.quantity*sales.sales_rate sttl
pur.avgp
from sales
(select avg ( purchase_rate *
quantity) avgp,
product_id
from purchases
group by product_id) pur
where sales.product_id = pur.product_id
and sales.invoice_date between
'04-jun-1999' and '05-may-2001';
If you need more complex grouping, you can add it. -
Plz help me rectify this query
Hi,
I am trying to use a OR condition in NOT IN clause, is the SQL statement correct way:
select name from master_list where ((id not in (select id from deleted_list)) OR (id not in (select id from inactive_list)))
I there are two tables which contain ids which should be in not in clause.
Thanks,
RajaHi,
Whenever you post fomatted text on this site (and code should always be formatted), type these 6 characters:
{code}
(small letters only, inside curly brackets) before and after sections of formatted text, to preserve spacing.
What is the problem?
Are you getting an error message?
Why not post the error message?
Are you getting the wrong results?
Post some sample data, and the results you want to get from that data.
NOT IN will never be TRUE if the sub-query includes any NULL rows. I can't tell if that's possible with your tables or not.. -
query
create table third_party
(customer_id varchar2,
third_party varchar2,
foreign key (third_party) references account(type),
foreign key (customer_id) references customer(customer_id),
primary key(customer_id,third_party));
Error
ORA-00906: missing left parenthesisPlease see this ..these are done
create table account
(account_no number primary key,
type varchar2(10),
balance number(20) );
create table registered_account
( account_no number primary key,
customer_id varchar2(10),
foreign key (account_no) references account(account_no),
foreign key (customer_id) references registered_users(customer_id) );
create table registered_users
(customer_id varchar2(20) primary key,
user_id varchar2(10),
login_password varchar2(10),
foreign key (customer_id) references customer(customer_id));
create table transaction
(transaction_id number primary key,
to_account number,
from_account number,
tr_date date,
amount number,
customer_id varchar2(10),
foreign key (to_account) references account(account_no),
foreign key (from_account) references account(account_no),
foreign key (customer_id) references customer(customer_id));
create table has
(customer_id,
account_no,
foreign key (customer_id) references customer(customer_id),
foreign key (account_no) references account(account_no),
primary key(customer_id,account_no));
create table customer
(customer_id varchar2(20)primary key,
name varchar2(15),
address varchar2(50),
city varchar2(20),pin number(6),
dob varchar2(10),ph_no number(10));
The following is nt working
create table third_party
(customer_id varchar2(20),
third_party varchar2(10),
foreign key (third_party) references account(type),
foreign key (customer_id) references customer(customer_id),
primary key(customer_id,third_party)); -
Plz help to make this query......
I ve two table <br>
<br>
First one is grn_dtl containing following fields <br> <br> <br>
<u><b>
item_code ent_dt qty doc_no </u></b><br>
11001318 09/09/2003 5 56300501 <br>
11001318 11/09/2004 9 56300502 <br>
11001318 12/05/2005 2 56300503 <br>
11001319 22/06/2004 0 56300504 <br>
11001320 09/06/2005 0 56300505 <br>
11001320 11/08/2004 8 56300506 <br>
11001320 30/05/2005 4 56300507 <br>
11001320 21/06/2003 1 56300508 <br>
11001321 25/09/2004 1 56300509 <br>
11001321 15/07/2004 1 56300510 <br>
11001321 01/08/2004 2 56300511 <br>
11001322 02/06/2004 1 56300512 <br>
11001322 22/06/2004 2 56300513 <br>
11001323 12/09/2004 1 56300514 <br>
11001323 08/05/2004 4 56300515 <br>
11001323 17/08/2004 5 56300516 <br>
11001323 28/06/2004 2 56300517 <br>
<br><br>
second one is <b>item_mst</B> containing following fields <br>
<br>
<u><b>
item_code description leadtime kanbandate</u></b><br>
11001318 AIR FILTERS 15 22/04/2004<br>
11001319 AIR FILTER KIT DSK 15 02/12/2004
11001320 AIR FILTER FOR 3.0 15 14/07/2005
11001321 AIR FILTER NA 21323130 15 23/02/2004
11001322 AMPERE METER DC-0-50 15 05/10/2004
11001323 ACTUATER KIT 15 17/05/2004
11001324 ACTUATOR HOSE 15 27/12/2004
11001325 AIR GUN MEDIUM 15 07/08/2004
from the above two tables I want the query which will display item_code its description ,kanbandate from item_mst table and will also display the minimum ent_dt of each correspondingselect m.item_code,m.description,m.kanbandate,min(d.end_dt)
from item_mst m,grn_dtl d
where m.item_code = d.item_code
group by m.item_code,m.description,m.kanbandate -
How to apply an accent-insensitive search to an interactive report?
Hello all!
I'm trying to put an accent-insensitive search on an interactive report here. For example, if I'm on the page that has the interactive report and if I click the column header of the interactive report, I get to see a search bar that dynamically shows the results that match your input. Now, when I enter "jager", I want to see *"Jägermeister"* as a search result. The search must be accent-insensitive, so that I don't have to enter the ä every time.
My code is as follows:
SELECT name
FROM food_1
WHERE name LIKE 'Jagerme%'
AND NLSSORT(name) IS NOT NULL
ORDER BY NLSSORT(name, 'NLS_SORT=GENERIC_M_AI');As you can see, I first tried getting a result through the SQL Command. It should return the row that has "Jägermeister" as name. However, it doesn't. It tells me "No data found". So, how do I alter my NLSSORT to search accent-insensitive?
Some extra information, I edited the interactive report source to the following:
SELECT DISTINCT a.name, a.foodid
FROM food_1 a INNER JOIN foodunit_1 c
ON a.foodid = c.foodid
WHERE a.foodlanguageid = :P17_SET_LANGUAGE
AND NLSSORT(a.name) IS NOT NULL
ORDER BY NLSSORT(a.name, 'NLS_SORT=GENERIC_M_AI');I also tried doing ALTER SESSION before the SQL code, but it still gives me the same result: No data found.
I'm using APEX version 4.1.1.00.23.
Help and suggestions are more than welcome. ;)
Thanks in advance,
MagaliI found it out!
It's really ridiculous, actually.
Remember this code?
execute immediate ('ALTER session SET NLS_COMP=LINGUISTIC');
execute immediate ('ALTER session SET NLS_SORT=BINARY_AI');Well, this code is perfectly fine. Only, it doesn't execute. This is because it was misplaced...This process is not executed when you place it in the current authentication scheme, under the "Post-Authenticatoin Process" part.
You might wonder why this is, but I have the explanation to that.
You see, when you use an interactive report, the page processing isn't executed when you use the search function of that interactive report... Because it's an interactive report, I guess.
BUT.
An ALTER SESSION from the security attributes, that will execute.
So, the solution to my problem was, in this case:
Go to "Application" --> "Shared Objects" --> "Security Attributes" --> "Database Session" --> "Initialization PL/SQL code". In there, you need to put:
BEGIN
EXECUTE IMMEDIATE 'ALTER session SET NLS_COMP=LINGUISTIC';
EXECUTE IMMEDIATE 'ALTER session SET NLS_SORT=BINARY_AI';
END;By doing this, there's no longer any need to edit the source code of the report!
So, that's the solution. I can finally enter text without special characters in it, and get the corresponding data, with special characters... Ahh. :)
I hope this is helpful to others as well now. ;) -
Hi Friends
Here is my query,
I am changing the tcode FBL3N to add one extra field into it and to display data in the name1 field for the spcific entries in the selection screen,
After selecting the All item radio button and giving the range in the select-options when i am pressing F8 it is giving me the correct output,after that when i am trying to display the name1 field by selecting the ctrl+f8 button and pressing the apply button it is giving me the error as
"An internal error has arisen in the form routine ANALYZE_ACT_FIELDCAT
for program RFITEM_INC.
This is due to inconsistencies between table T021S (special fields) and
structure RFPOSEXT."
I changed everything to Y* but still it is giving the error.
Plz help me in this if someone face the same prob or someone having idea on this.
Thanks a lot in Advance
Mrutyun^Hi Mrutyunjaya,
Did you manage to resolve this error?
Thanks and Regards
Pras -
Plz help me on this very simple error
hello everybody...i'm very new to java programming...i'm unable to execute my program though it has been compiled...my coding is something like this and is very easy>>
class abc
public static void main(String [] args)
System.out.println("hello");
and at the time of execution...this error is shown up>>
C:\Documents and Settings\Ishan\Desktop>java abc
Exception in thread "main" java.lang.NoClassDefFoundError: abc
Caused by: java.lang.ClassNotFoundException: abc
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: abc. Program will exit.
plz help me on this. thanks.Follow the instructions in this tutorial:
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html
See problem solutions here:
http://java.sun.com/docs/books/tutorial/getStarted/problems/index.html -
Could you please help me make this query less complicated
could you please help me make this query less complicated
select t1.R_OBJECT_ID
from dm_relation_sp a, ddt_resolution_sp t1
where a.parent_id = '0900000283560456' -----------ID
and a.child_id = t1.R_OBJECT_ID
union all
select t3.R_OBJECT_ID
from ddt_resolution_sp t3
where t3.R_OBJECT_ID in (select t2.child_id
from dm_relation_sp t2
where t2.parent_id in (select a.child_id
from asud_fsk.dm_relation_sp a, asud_fsk.ddt_resolution_sp t1
where a.parent_id = '0900000283560456' -----------ID
and a.child_id = t1.R_OBJECT_ID))
union all
select t4.R_OBJECT_ID
from ddt_resolution_sp t4
where t4.R_OBJECT_ID in(
select t3.child_id from dm_relation_sp t3
where t3.parent_id in (
select t2.child_id
from asud_fsk.dm_relation_sp t2
where t2.parent_id in (select a.child_id
from asud_fsk.dm_relation_sp a, asud_fsk.ddt_resolution_sp t1
where a.parent_id = '0900000283560456' -----------ID
and a.child_id = t1.R_OBJECT_ID))
and t3.relation_name = 'RESOLUTION_RELATION')
union all
select t5.R_OBJECT_ID
from ddt_resolution_sp t5
where t5.R_OBJECT_ID in
(select t4.child_id
from dm_relation_sp t4
where t4.parent_id in(
select t3.child_id from dm_relation_sp t3
where t3.parent_id in (
select t2.child_id
from asud_fsk.dm_relation_sp t2
where t2.parent_id in (select a.child_id
from asud_fsk.dm_relation_sp a, asud_fsk.ddt_resolution_sp t1
where a.parent_id = '0900000283560456' -----------ID
and a.child_id = t1.R_OBJECT_ID))
and t3.relation_name = 'RESOLUTION_RELATION')
and t4.relation_name = 'RESOLUTION_RELATION')
Edited by: user13025450 on 29.04.2010 16:23Hi,
Welcome to the forum! You'll find that there are many qualified people (such as Tubby) willing to help you. Will you do what you can to help them? In order to simplify the query you posted,someone will first have to understand what it does, what the tables that it uses are like, and what tools you have to work with (that is, what version of Oracle, and any other software you are using). To actually test their ideas, people will need versions of your tables.
Many people, if they spent enough time, might be able to figure out roughly what you are doing, make some tables themselves and test a solution. You can help with all of that. I assume you already know what the appliction is, and what this particular query is supposed to do: you don't have to figure out any of that, you just have to say it. You know what all your tables are, what the datatypes of all the columns are, and what kinds of data are in the tables: you don't have to guess at any of that.
Describe what you're doing. Think about it: how do we know that
SELECT NULL
FROM dual;doesn't do what you want?
Post CREATE TABLE and INSERT statements for a little sample data.
Post the results that this query is supposed to produce from those results. (Is it producing the right output now? Then it should be easy to post the correct results.)
Describe, as well as you can, how the present query is doing it.
Format your existing code, so it's easy to see what the different branches of the UNION are, and what the main clauses are in each one.
When posting formatted text (code or results) type these 6 characters
\(all small letters, inside curly brackets) before and after each formatted section, to keep this site from compressing the spaces.
Say what versions of Oracle (e.g. 10.2.0.3.0) and any other relevant software you are using.
I know it's a lot of work, but it really helps. You can do it as well (probably better) than anyone else, and if you're unwilling to do it, why should anyone else be willing? -
Hi,
I'm using below query in procedure.It's taking more more time can some one help to tune this query or advice to rewrite the query.
Databse :10.1
SELECT 'Reading Comprehension' TEST_NAME,T.TEST_END_DATE TEST_SESSION_DATE,
C.POOL_VERSION_ID, I.CREATED_ON POOL_CREATED_DT,
C.ITEM_ID, C.ITEM_RESPONSE_ID, S.STUDENT_ID_PK, C.RESPONSE_KEY, C.IS_CORRECT RESPONSE_IS_CORRECT,
T.SCORE SCALE_SCORE, C.RESPONSE_DURATION, P.ITEM_KEY,
T.TEST_SESSION_DETAIL_ID, SYSDATE CREATED_ON
-- BULK COLLECT INTO TV_PSYCHO_DET
FROM
CAT_ITEM_PARAMETER P, CAT_ITEM_USER_RESPONSE C, TEST_SESSION_DETAIL T,
TEST_SESSION S, ITEM_POOL_VERSION I, TEST_DETAIL D
,INSTITUTION E
WHERE TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-11-09','dd-mm-yy') AND TO_DATE('30-11-09','dd-mm-yy')
AND D.TEST_NAME = 'Reading Comprehension'
AND T.TEST_SESSION_STATUS_ID = 3
AND I.POOL_AVAILABILITY='Y'
AND P.PRETEST=0 AND C.RESTART_FLAG=0
AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
AND C.TEST_SESSION_DETAIL_ID = T.TEST_SESSION_DETAIL_ID
AND S.INSTITUTION_ID=E.INSTITUTION_ID
AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3) <> '000'
AND I.ITEM_ID = C.ITEM_ID
AND P.ITEM_ID = I.ITEM_ID;expln plan
Plan hash value: 3712814491
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart|
Pstop |
| 0 | SELECT STATEMENT | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
|* 1 | FILTER | | | | | | |
|
|* 2 | HASH JOIN | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
| 3 | PARTITION HASH ALL | | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 4 | TABLE ACCESS FULL | CAT_ITEM_PARAMETER | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 5 | HASH JOIN | | 94938 | 12M| 93356 (1)| 00:18:41 | |
|
|* 6 | TABLE ACCESS FULL | ITEM_POOL_VERSION | 9036 | 132K| 30 (0)| 00:00:01 | |
|
|* 7 | TABLE ACCESS BY GLOBAL INDEX ROWID | CAT_ITEM_USER_RESPONSE | 9 | 279 | 18 (0)| 00:00:01 | ROWID |
ROWID |
| 8 | NESTED LOOPS | | 45349 | 5270K| 93325 (1)| 00:18:40 | |
|
|* 9 | HASH JOIN | | 4923 | 423K| 11377 (1)| 00:02:17 | |
|
|* 10 | INDEX FAST FULL SCAN | INSTI_ID_NAME_COUN_DISP_IDX | 8165 | 111K| 18 (0)| 00:00:01 | |
|
|* 11 | HASH JOIN | | 4923 | 355K| 11359 (1)| 00:02:17 | |
|
|* 12 | TABLE ACCESS BY GLOBAL INDEX ROWID| TEST_SESSION_DETAIL | 4107 | 148K| 6804 (1)| 00:01:22 | ROWID |
ROWID |
| 13 | NESTED LOOPS | | 4923 | 278K| 6806 (1)| 00:01:22 | |
|
|* 14 | INDEX RANGE SCAN | TEST_DETAIL_AK_1 | 1 | 21 | 2 (0)| 00:00:01 | |
|
|* 15 | INDEX RANGE SCAN | TEST_SESSION_DETAIL_FK2_I | 39737 | | 102 (0)| 00:00:02 | |
|
| 16 | PARTITION HASH ALL | | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
| 17 | TABLE ACCESS FULL | TEST_SESSION | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
|* 18 | INDEX RANGE SCAN | CAT_ITEM_USER_RESP_IDX1 | 18 | | 3 (0)| 00:00:01 | |
|
Predicate Information (identified by operation id):
1 - filter(TO_DATE('01-11-09','dd-mm-yy')<=TO_DATE('30-11-09','dd-mm-yy'))
2 - access("P"."ITEM_ID"="I"."ITEM_ID")
4 - filter("P"."PRETEST"=0)
5 - access("I"."ITEM_ID"="C"."ITEM_ID")
6 - filter("I"."POOL_AVAILABILITY"='Y')
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0)
9 - access("S"."INSTITUTION_ID"="E"."INSTITUTION_ID")
10 - filter(SUBSTR("E"."INSTITUTION_ID_DISPLAY",8,3)<>'000')
11 - access("S"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
12 - filter(TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))>=TO_DATE('01-11-09','dd-mm-yy') AND "T"."TEST_SESSION_STATUS_ID"=3
AND TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))<=TO_DATE('30-11-09','dd-mm-yy'))
14 - access("D"."TEST_NAME"='Reading Comprehension')
15 - access("T"."TEST_DETAIL_ID"="D"."TEST_DETAIL_ID")
18 - access("C"."TEST_SESSION_DETAIL_ID"="T"."TEST_SESSION_DETAIL_ID")
43 rows selected.Edited by: user575115 on Dec 18, 2009 12:31 AMWhen you see something like ...
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0) It means that Oracle had to do a conversion for you since you aren't using the proper data type in your query.
That would mean IF there is an index on that column, it won't be useable...
Maybe you are looking for
-
Tried accessing Mozilla Support Forums for Firefox Desktop Support, which I have used many times. It would not accept my username and password, claiming they were incorrect. I tried the Password Reset feature, which opened a window saying that accoun
-
Hi Experts, When we create a PO with account assignment K (cost center) at the line level for a material stock, the Moving Average price in the accounting view of that material is not updated at the time of GR. Is there a way to update that price whe
-
Do I need 2 airport expresses to run a network and airtunes at the same time?
Meaning, if I set up the network in my office with the airport express, I need another one plugged into the stereo for air tunes right? unless I want to unplug it and move it back and forth right?
-
Google Chrome won't open properly in Lion
I have just upgraded to Lion and I am having a number of difficulties, my BTYahooo home page won't display properly in Google Chrome browser, even though it will in Safari. I also used to be able to get Dock Art working with itunes but it has now s
-
How to transfer ABAP query from one server to another server
Hi all, I have a ABAP query in development server and i need to transport it to production server. I have attached a transaction to it using the program which got generated in the back ground from the abap query in the developemnt server. I have down