The query sql without prescription by will return same result on several tracks?

Hello

I have a sql without a prescription and I limit the number of rows to 100 max per rownum < 100. Now the question is, if the data set on which this sql is running, does not change, the sql returns the same result the performance of several?

For example, there are 150 lines and the sql returns 100 rows because of rownum < 100. Now running the same sql several times, I have the same set of 100 lines? or it could be 150? On the basis of these the kind of database engine and return data when no order by clause are provided?

Thank you for your time.

-Hozy

Hi, Hozy,

Hozy says:
Hello

I have a sql without a prescription and I limit the number of rows to 100 max per rownum< 100.="" now="" the="" question="" is,="" if="" the="" data="" set="" on="" which="" this="" sql="" runs,="" does="" not="" change,="" will="" the="" sql="" return="" the="" same="" result="" set="" on="" multiple="">

N ° if there is no ORDER BY clause, then there is no guarantee that the order will remain the same. If the table is small, the output will probably be the same thing, but you can't count on it.
I guess that you do not have a CONNECT BY query. CONNECT BY queries without ORDER BY clause or brothers and SŒURS of ORDER BY, the output is partially ordered.

For example, there are 150 lines and the sql returns 100 rows due to rownum< 100.="" now="" on="" executing="" the="" same="" sql="" multiple="" times,="" will="" i="" get="" the="" same="" set="" of="" 100="" rows?="" or="" it="" could="" be="" any="" of="" the="" 150?="" on="" what="" bases="" these="" the="" database="" engine="" sort="" and="" return="" data="" when="" no="" order="" by="" clause="" is="">

No, you necessarily will not get the same 100 lines each time. ROWNUM reflects the order in which the establishment has recovered the lines.
Say you run the query at 11:00. Maybe do you a full table scan to obtain the data on the drive, and the order of the lines is determined by how it data happens to be on the disk. As the data is read from the disk, it is cached in memory.
Say you run the same exact query at 12:00, without changing the table. Instead of retrieve all data from the disk, Oracle will try to use the blocks that are cached in memory, which is not necessarily the way the blocks are stored on the disk. If some of the older blocks 11:00 to 12:00 (otherwise said, some, but not all, blocks are more in memory because memory was required for other purposes), then the items picked up at 11:00 can be recovered first at 12:00 and the lines that I have high ROWNUMs at 11:00 can get low ROWNUMs at 12:00. (See Matthew 7:30.)

Again, you would never notice it on a small table. You can run this query

SELECT  ename
FROM    scott.emp
WHERE   ROWNUM  < 10;

a thousand times and get the same results every time. You will get the same results the 1001eme time? Probably, but not necessarily.

If you want the output to be in a particular order, to use an ORDER BY clause in the main query.
If you want ROWNUM to reflect a particular order, use a subquery with an ORDER BY clause and ROWNUM reference in the main query.

Tags: Database

Similar Questions

  • Exicuting "xmlelement" in the query SQL of BI Publisher

    I use Oracle BI Publisher 10.1.3.4.0d

    I was reading a blog and saw that you should be able to have the possibility of using SQL XML. However, when I put the following in the datamodel SQL SQL code I get this error: java.io.IOException: prepare the request failed [nQSError: 27002] about: syntax error [nQSError: 26012]

    SQL as follows:
    Select
    XMLELEMENT ('Test'
    XMLATTRIBUTEs)
    BOOK_FACT. BOOK_NUM as BOOK_NUM,
    BOOK_FACT. BOOK_TYPE as BOOK_TYPE,
    BOOK_FACT. BOOK_USER_CODE as BOOK_USER_CODE,
    BOOK_FACT. CMPY_NUM as CMPY_NUM
    )
    ). getClobVal() like SampleBook
    of the BOOK. BOOK_FACT BOOK_FACT


    I need to get data from BIPublisher as follows
    rowset <>
    < ROW >
    < SAMPLE >
    < BOOK_NUM = "1" BOOK_TYPE = "223" "1925" CMP_NUM = BOOK_USER_CODE = ".116" >
    < / SAMPLE >
    < / ROW >
    ....


    Hope you can help because it's pretty frustraiting.

    Regards

    E

    of the request, it looks at, your data source is OBIEE.

    The query that you have written is not a valid query of OBIEE. That's why it failed.
    test this query to the ODBC client, and she throws the same exception.

    These structure of XQuery is supported in direct sql queries. not in OBIEE queries.

  • write the query sql for the following situation?

    We have a table like format following...

    A AND B
    ...................
    10 30
    50 40
    60 80
    90 100


    so to write the query and get the result like formats following...


    RESULT
    ............
    30
    50
    80
    100


    Try this... He's one of the interview question. I can't write the query...


    If a knowledge write the query...

    Hello
    Try this

    select (case when a>b then a else b end)   "Result"  from ;
    
  • Two criteria in mind: one for af:query, second with bind var, both use same result table

    JDeveloper 12.1.2

    I have two display criteria, VC1 and VC2 are based both on the same VO. For example, let's say that I have used VO

    SELECT Employees.EMPLOYEE, Employees.EMPLOYEE_ID, Employees.FIRST_NAME, Employees.LAST_NAME, Employees.DEPARTMENT_ID

    Employees;

    Let this be VC1:

    SELECT * from (SELECT Employees.EMPLOYEE, Employees.EMPLOYEE_ID, Employees.FIRST_NAME, Employees.LAST_NAME, Employees.DEPARTMENT_ID

    EMPLOYEES employees ) QRSLT WHERE 1 = 2


    Used for af:query


    So let's say I have VC2 with bind variable


    SELECT * from (SELECT Employees.EMPLOYEE, Employees.EMPLOYEE_ID, Employees.FIRST_NAME, Employees.LAST_NAME, Employees.DEPARTMENT_ID

    EMPLOYEES employees ) QRSLT WHERE 1 = 2 AND ((UPPER (QRSLT. Department_id) = UPPER(:DeptIdBind))) )

    The user runs the af:query research and resulting table lists some employees. The last value of the column in the table of results, I did as links:

    < af:column headerText = 'Department' id = "c1" width = "140" >

    < af:link shortDesc = "#{bindings.myVO.hints.DepartmentId.tooltip}" id = "ot4" text = ' #{row. "" DepartmentId}'

    action = "#{backingBeanScope.MyBean.byDept}" partialTriggers =": t1" / >

    < / af:column >

    If the user now clicks on the link, I would expect the following:

    1. the values entered in the af: query to stay

    2. the table refreshes since the underlying VC2 is defined and executed VO. Here is the code VOImpl and backingbean

    The bean of support code

    public String byDept() {}

    Links DCBindingContainer = (DCBindingContainer) BindingContext.getCurrent () .getCurrentBindingsEntry ();

    DCIteratorBinding dcItteratorBindings = bindings.findIteratorBinding("EmployeesIterator");

    Line r = dcItteratorBindings.getCurrentRow ();

    Object keyvar = r.getAttribute ("DepartmentId");

    OperationBinding searchExp = ADFUtils.findOperation ("searchByDept");

    searchExp.getParamsMap () .put ("deptId", keyvar);

    searchExp.execute ();

    Returns a null value.

    }

    Impl VO

    {} public void searchByDepartment (String deptId)

    setDeptIdBind (deptId);

    executeQuery();

    }

    Problem:

    Query (VC2) runs but table does not reflect that. That is to say I don't see the list of employees of the selected Department

    Any idea?

    RPP = partial page request

    PPR refresh a component jsf

    AdfFacesContext.getCurrentInstance () .addPartialTarget (UIComponent);

    Where component is the component that you want to refresh.

    Have you checked that the query executed vc ID?

    Timo

  • Body of function from PL/SQL query SQL - problem with where Cluase return

    Hi all
    I have problem with sub PL/SQL. Where clause does not filter the values even when I change the value: P7_INVESTIGATOR. I have marked with an asterisk for where clause where I want the values to filtered.


    DECLARE
    v_sql varchar2 (5000);
    v_inv VARCHAR2 (100);

    Start
    v_inv: = UPPER(:P7_INVESTIGATOR);

    v_sql: = ' select TBLCASES. INVESTIGATOR as an INVESTIGATOR,';
    v_sql: = v_sql | "TBLCASES. CASENUMBER as CASENUMBER,';
    v_sql: = v_sql | "TBLCASES. OPENDATE as OPENDATE,';
    v_sql: = v_sql | "TBLCASES. ESTCOMPLETE as DATE_CIBLE,';
    v_sql: = v_sql | "TBLCASES. STATUS of STATUS ';
    v_sql: = v_sql | "TBLCASES. Case CODE case CODE as,';
    v_sql: = V_sql | "TBLCASES. FAIR_HOTLINE as FAIRHotline,';
    v_sql: = v_sql | "TBLCASES. NYSIG as NYSIGCase,';
    v_sql: = v_sql | "TBLCASES. The REGION';
    v_sql: = v_sql | "TBLCASES. PROGAREA as PROGArea ';
    v_sql: = v_sql | ' from TBLCASES where 1 = 1';
    **************************************************************
    If v_inv <>null then
    v_sql
    : = v_sql | "and UPPER (trim (tblcases.investigator)) = UPPER (trim (v_inv))';
    END IF;
    ***************************************************************
    v_sql: = v_sql | "order by tblcases.investigator";
    Return v_sql;
    end;


    Thank you

    wrote:
    Or it is possible to write it this way:

    if v_inv is not null then
    v_sql := v_sql ||'  and UPPER(trim(tblcases.investigator)) = UPPER(trim(:P7_INVESTIGATOR))';
    END IF ;
    

    In this case we will use bind variables and we all know that it is very important.

    Lev

    Of cause, it is the best option. and I strongly suggest the OP to use.
    But it depends on how the sql is used later.
    Without knowing that, we cannot be sure if the item is available here.

  • How to build the query SQL for indexes work based on data - dict.?

    Hello

    I want to build the index 'create' - statement to all indexes have worked-based on the data dictionary.

    For example:
    create indexes tab1.ind1
    on tab1 (lower (col3), lower (col1), col2, col4)
    Tablespace "index."

    I know I'll find all needed information views all_indexes, all_ind_columns and all_ind_expressions. During the generation of the create statement for the index of the order of the indexed columns must be correct (the order of the indexed column can be achieved using the "position_colonne" column of seen all_ind_columns and all_ind_expressions). But what would be the best way to provide all the necessary information in the right order?
    One way would be a PLSQL procedure that puts it all together - but is it possible to use a single SQL statement?

    Any help will be appreciated.

    Rgds
    JH

    You can try using DBMS_METADATA. GET_DDL:

    SQL> show user;
    USER is "TEST"
    SQL> drop table t;
    
    Table dropped.
    
    SQL> create table t(x varchar2(10));
    
    Table created.
    
    SQL> create index i on t(upper(x));
    
    Index created.
    
    SQL> select dbms_metadata.get_ddl('INDEX','I','TEST') from dual;
    
    DBMS_METADATA.GET_DDL('INDEX','I','TEST')
    --------------------------------------------------------------------------------
    
      CREATE INDEX "TEST"."I" ON "TEST"."T" (UPPER("X"))
      PCTFREE 10 INITRANS 2 MAXTRANS 255
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"
    
  • Cursor moves on the screen and without entrance music will start to play

    I have two dell - a desktop and laptop computers. We have ATT uverse service of broadband ISPS. My phone receives the signal of a wireless router. Several times, I looked down my laptop and noticed the cursor "darting on the screen. In addition, on occasion, without any input from anyone, audio advertising or music started playing. I have McAfee security and my wireless signal is supposed to be encrypted. Have you ever heard such a thing? It's a little scary!

    Original title: WEIRD ACTIVITY

    Hi, Bandaid99,

    To rule out malware, download the following tool and run a scan complete

    http://www.Microsoft.com/download/en/details.aspx?displaylang=en&id=16

    (1) is the own mouse?

    (2) is it a phone, cell phone, or come close to the mouse?  Their distance.

    (3) is it the humidity or lotion on your hands when you use the mouse?

    (4) the drivers are up to date?

    (5) can you test with another mouse?  Disable the touchpad and start again with the mouse.

    (6) open the Device Manager and uninstall the mouse driver.  Restart windows

    Right click on desktop

    Select customization

    Select the mouse pointers

    Uncheck the enhance pointer precision

    Click on apply, Ok

    Retry using the mouse

    When you hear the sound, you have a page (s) open where the sound may come from ads on the page?

    Update using Device Manager sound card drivers

  • I have reset default firefox but the BBC website opens OK but will return to the display of the text when I click on a link.

    (Newish laptop so I'm not really familiar with operating systems (Win 8.1 I think) and more) Initially, my BBC homepage opened OK in Firefox, but after a period, he began to view a text version. This can be temporarily cured by restoring the default Firefox (Firefox / help / troubleshooting information / restore Firefox) but as soon as I click a link on the page of the BBC, it is up to the display of the text. Is there a way I can solve this problem. Other sites seem to be working properly.

    It's a problem of missing style sheet. If you have modules like Adblock Plus installed, first of all, try to start Firefox with the disabled modules and check if the problem persists.

    Otherwise,.

    1. Hold down the ALT key and press V to open the view menu. Open the submenu Style Page and make sure that "Basic Page Style" is selected.
    2. Clear the cache.
    3. Remove the cookies from the site in question.
    4. If the problem persists, see
  • Disable the generation of report when there are no returned by the query

    I would like to write a preliminary report trigger that disables reports generation when my main query in my data model will return no data. If possible, I would like to reuse the same query in the data model from the writing of a motion to double again.

    Thank you all

    Create a view for the main request. In this case, you just have to do it in the front trigger of the report:

    select count(*)
    into my_var
    from my_view
    where ...;
    
    if my_var =  0 then
       return false;
    else
       return true;
    end if;
    

    In where clause you can use the same settings as in your main report query.

  • Select from another table, when the query returns no result

    Hello

    I have a question where I'm supposed to retrieve the address of an account id-based billing. However, the table of billing may not have an address. There is a table of addresses that always has an address for an account. If the billing address exists, it should be used, so I can't use the address table. Is it possible in a select statement to query to the billing address and if it does not exist, use the address table.

    SELECT * FROM accounts a, b billings WHERE a.accountid = b.accountid

    Any help will be greatly appreciated.

    Thank you.

    user10407139 wrote:
    Hello

    I have a question where I'm supposed to retrieve the address of an account id-based billing. However, the table of billing may not have an address. There is a table of addresses that always has an address for an account. If the billing address exists, it should be used, so I can't use the address table. Is it possible in a select statement to query to the billing address and if it does not exist, use the address table.

    SELECT * FROM accounts a, b billings WHERE a.accountid = b.accountid

    Any help will be greatly appreciated.

    I think you need to explain more clearly if

    -you only have a couple of "billing" columns which is empty and in this case, you want to use the columns from the table 'accounts '.

    - or you have a join with another table that doesn't return data, for example a foreign key "address_id" "billing" is zero and therefore the join to other tables 'address' will return all the data

    In the first case, you have already been provided with some examples here, how to use NVL or similar functions to achieve, even if the first post first evaluates the information of 'accounts' and if it is white using information from "billing". According to your description you need the other way around. The second post a subquery recursive useless in my opinion.

    In the latter case, you should probably use an "outer" join so that the data in your table "bills" are returned, even if the join to another table is not at all the lines.

    SELECT
    NVL(AD1.ADDRESS_ATTR1, AD2.ADDRESS_ATTR1) as ADDRESS_ATTR1,
    NVL(AD1.ADDRESS_ATTR2, AD2.ADDRESS_ATTR2) as ADDRESS_ATTR2,
    NVL(AD1.ADDRESS_STREET, AD2.ADDRESS_STREET) as ADDRESS_STREET,
    ...
    FROM accounts a
    INNER JOIN billings b
    ON a.accountid = b.accountid
    LEFT OUTER JOIN address ad1
    ON b.address_id = ad1.address_id
    INNER JOIN address ad2
    ON a.address_id = ad2.address_id;
    

    In this way you pick up the address stored in the "invoices" table, if it existed, otherwise you pick up the address assigned to the "accounts" table I used an inner for the second address join join because you said that the account always has an assigned address.

    Kind regards
    Randolf

    Oracle related blog stuff:
    http://Oracle-Randolf.blogspot.com/

    SQLTools ++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676 /.
    http://sourceforge.NET/projects/SQLT-pp/

  • Problem with case when try to alter the query from siimple

    Hello PL/SQL gurus and Experts.

    I'm stuck with a question (can be simple), but not gettings all headsway.
    select 365/day_num_yr Anul_Fact from Date where date_dt = trunc(sysdate -1) 
    value returns is as - 1.46

    need to write it in the form of case (I have to multiply it to some other outer query), I want to store variable ina and then use the same in an outside -.
    but when use the following syntax, then it always returns 0 and not the same output returned by the query above without the scabbard.
    select (case when date_dt =trunc(sysdate -1) then 365/day_num_yr else 0 END) Anul_Fact 
    Help kindly, I appericate your time and effort in advance.

    user555994 wrote:
    Problem is that I do not get the output as 1.46, even the output is coming like the 0 only if using the query - next

    select /*date_dt, sysdate - 1 prev_dt, trunc(sysdate - 1) trunc_prev_dt,*/
    case when date_dt = trunc(sysdate -1) then  365/day_num_yr
    else 0
    end num_day
    from date_dim;
    

    Completely, which seems to be a question of DATA. Have you checked if the table contains data for DATE_DT = SYSDATE - 1? Can you check if the data stored do not have hours and Minutes stored?

    Although I have provided examples of data, which is the same as the data in my main table and once I used the previous solution you provided and then also gives the result as same as those mentioned by you.

    I think it's something like -

    select date_dt, sysdate - 1 prev_dt, trunc(sysdate - 1) trunc_prev_dt,
    case when date_dt = trunc(sysdate -1) then  366/day_num_yr where day_num_yr=(select day_num_yr from date_dim where date_dt = trunc(sysdate -1))
    else 0
    end num_day
    from date_dim;
    

    Once we get the day_num_yr then he deviding by 366/day_num_yr :(
    but he does not like throwing an error ORA-95 - missing keyword

    Yes, it does not work

    -case when date_dt = trunc (sysdate-1) then 366/day_num_yr where day_num_yr = (select day_num_yr from the date_dim where date_dt = trunc (sysdate-1))

    due to a syntax of alien.
    I don't think that you really need. I already said, with the data in your Table, you will be having only * 1 * record with a Non - zero value. Thus, simply apply a filter to extract the corresponding record SYSDATE - 1 and you should get an output which is Non-zero. If you apply a where predicate, then would not need you a CASE statement. You can directly use something like below:

    select date_dt, sysdate - 1 prev_dt, trunc(sysdate - 1) trunc_prev_dt,
           365 / day_num_yr num_day
      from t4
     where date_dt = trunc(sysdate - 1);
    

    Published by: Jen K, September 7, 2012 16:00

  • How to disable autojoins in the query designer

    Hello

    When I add several tables to the query generator window graphic in SQL Developer I get automatically all possible variants of joins between them. Tables in the database have multiple foreign keys, and even with a few tables, the net of the linkages between them become quite incomprehensible. The only way to work around that I have found is to manually remove all the links after each addition to the table. It's still very painful and embarrassing, and of course with each new table there are a greater number of links to delete. It is possible to add a table to the query generator without automatically creates links?

    Best regards
    Vladimir.

    Hi Vladimir,.

    There is no preferences to control the Query Builder, but rather than leave a request it via drag & drop of tables/views of the tree of the browser, why not start instead with the spreadsheet by typing in something very minimal as:

    SELECT * FROM JOB_HISTORY, JOBS, EMPLOYEES, LOCATIONS
    

    Then, switch to the Query Builder tab (just not joined tables will appear) and add the joints as you wish. The completion feature Insight can help speed up by typing the name of the table/view and can also avoid a performance problem with Query Builder drag & drop.

    Hope this helps,
    Gary

  • Is there a way to combine their results of the query in a single function

    I have a bunch of functions that return a query:

    < cffunction = access "getDeals" name = "remote" returntype = "query" >
    < cffunction = access "getDeals2" name = "remote" returntype = "query" >

    is there a way to combine their results of the query in a single function that returns a structure of different results?

    Uh, it is probably more suited to a table - effectively turning it into a list of queries. Then you loop the array and each output.

    I use a similar approach in the creation of the system of the user messages. Most of my functions that are called do their part, then at the end call another function, I called 'messages '. This function takes all what my function sends and adds it to a message board.

    Keeps me out of a long list of messages - because I could call several functions at the same time. If I have just the output of a message of each function, each would crush the other. So, I'd get one message at a time.

    Immediately after that he was released, I will destroy it then the message table so that messages are not kept inside.

    Mikey.

  • Error exporting Oracle on the QUERY parameter

    Hi all

    I would like to ask for help.

    This is my environment:
    OS: Linux 5.4 32-bit
    DB: Oracle 10.2.0.4

    Here's what I would do:
    Export the selected lines of SH. Table SALES using the query:

    SQL > select * from sh.sales
    where to_date(time_id,'DD-MON-RR:HH24:MI:SS') = to_date('28-DEC-01:00:00:00','DD-MON-RR:HH24:MI:SS');

    My parfile is:

    UserID = ' oracle/sys as sysdba'
    buffer = 10000000
    file = mysales148.dmp
    Journal = mysales148.log
    TABLES is sh. MySales
    Query = "(où to_date(time_id,\'DD\-MON\-RR:HH24:MI:SS\')=\to_date(\'28\-DEC\-01:00:00:00\',\'DD\-MON\-RR:HH24:MI:SS\')" "
    RecordLength = 65535
    Statistics = none


    When I run the script, I get this error:

    [oracle@shaoran selective_export] $ exp parfile = exp_mysale.par

    Export: Release 10.2.0.1.0 - Production the game 3 Feb 16:57:08 2011

    Copyright (c) 1982, 2005, Oracle. All rights reserved.


    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With partitioning, OLAP and Data Mining options
    Export in US7ASCII and AL16UTF16 NCHAR character set
    Server uses WE8ISO8859P1 (possible character set conversion) character set

    About to export specified tables by conventional means...
    Current user has changed to SH
    . . MYSALES table export
    EXP-00056: ORACLE 911 error encountered
    ORA-00911: invalid character
    Export completed successfully with warnings.


    Hope to hear from you soon.

    Thank you very much!

    First of all,

    export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
    

    It is probably the cause of your problem if you have unusual characters in your data.

    If this isn't the case, you do not have these "------" in your QUERY. Since you're using parfile, just go with what you would do in sqlplus:

    query="where time_id=to_date('28-DEC-01:00:00:00','DD-MON-RR:HH24:MI:SS')"
    
  • processor sql without editing Viewer

    Hello

    Is there a way to change the query processor without using the Oracle CEP Viewer? For example, the EPN assembly file has a piece of code:
         <wlevs:processor id="myProcessor" queryURL="??"/>
    If I put the queryURL attributes, it is read only once or at the specified interval? How can I do dynamic processor without Visualizer CEP component?

    Thank you.

    Yes, you can use the command line to do:

    java-jar $BEA_HOME/bin/wlevsadmin.jar-url service: jmx:msarmi://localhost:9002/jndi/jmxconnector, wlevs - username username-password wlevs ADDRULE-application applicationName-processor processorName-rule ruleName ' select * from... ". »

    Please refer to the CEP documents for more details.

    Thank you
    Jünger

Maybe you are looking for

  • Duplicate photos imported from the iPhone in pictures

    Whenever I connect my iPhone to my mac I wonder if I want to import new pictures but they were imported. Photos used to ask if I wanted to delete the pictures once they have been imported, but this question is not asked more. I'm on the latest os x a

  • Pictures of blackBerry Smartphones

    What I want to know is, that sucks cause when I bought this nice phone I was told I was able to select several pictures to cut and paste into folders and said I cud even to my videos and you can not edit the photos on the storm is there any applicati

  • performance NOT IN issue

    Hi Experts,I had a simple select statement runs for 3 hours now. No luck. About 1 m rows in both tables. T_PARA_ZUORD has about 10,000 rows. No index.SELECT DISTINCT T1. YEAR, T1. ERG_ID, T1. STA_ID, T1. REASON, T1. REASONSEC, T1. TRIAL_NO,T1. BL_COD

  • Lenovo Care button - FIXED

  • Text is superimposed in some text fields.

    We have an adobe document that has different text entry fields. On this PDF in particular, the text in some areas overlap, making it unreadable. I deleted all the language packs and that seems to work for a pdf, but not others. I completely uninstall