How to use sysdate

SQL> create table test1(
2 DOB date);
Table created.
SQL> insert into test1
2 values(sysdate);
1 row created.
SQL> select * from test1;
DOB
27-APR-2007
SQL> insert into test1
2 values(sysdate+1);
1 row created.
SQL> select * from test1;
DOB
27-APR-2007
28-APR-2007
SQL> insert into test1
2 select * from test1
3 where
4 DOB=sysdate;
0 rows created.
Why it is not creating any rows in test1 table?

insert into test1
select * from test1 where dob like sysdate
also works with automatic casting :DTry this:
with
  t as
      select sysdate - 1/4 as dt from dual
select *
  from t
where dt like sysdate
Query finished, retrieving results...
         DT         
27-APR-2007 10:37:30
1 row(s) retrieved
alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
session altered
with
  t as
      select sysdate - 1/4 as dt from dual
select *
  from t
where dt like sysdate
Query finished, retrieving results...
         DT         
0 row(s) retrieved

Similar Messages

  • How to use SYSDATE as a default value of a bind variable in a query report?

    Hi,
    I want to use SYSDATE as default value for a bind variable in Query based report.
    I don't see any way to do it, someone helps?
    Thanks a lot.
    Paulo.

    You can aslo use #sysdate directly.
    Hi,
    The way I'm doing in my report is, I have a database function (f_ret_sysdate) with the following code
    create function f_ret_sysdate return varchar2
    begin
    return to_char(sysdate,'mm/dd/yyyy');
    end;
    Now, in the 'Customization Form Display Options' section of the report I'm calling this function as #f_ret_sysdate in the default value field of corresponding bind variable to display SYSDATE with the format.
    Hope this helps!...
    -Krishnamurthy

  • How can I spool file in SQL*Plus using sysdate as filename?

    Dear Oracle Experts,
    Would you help me to solve following problem?
    I want spool a file in SQL*Plus but using sysdate as filename.
    e.g. today is 30-Nov-1999
    then the filename is 19991130.lst
    tommorrow is 1-Dec-1999
    then the filename is 19991201.lst
    My e-mail address is [email protected]
    Thanks!!!
    Tony Sit
    null

    Tony Sit (guest) wrote:
    : Dear Oracle Experts,
    : Would you help me to solve following problem?
    : I want spool a file in SQL*Plus but using sysdate as filename.
    : e.g. today is 30-Nov-1999
    : then the filename is 19991130.lst
    : tommorrow is 1-Dec-1999
    : then the filename is 19991201.lst
    : My e-mail address is [email protected]
    : Thanks!!!
    : Tony Sit
    Tony, hi!
    Let you test this way:
    set ECHO OFF
    set TERMOUT OFF
    set FEEDBACK OFF
    set VERIFY OFF
    SET PAGESIZE 0
    SET LINESIZE 80
    SET HEADING OFF
    spool setout.sql
    SELECT 'SPOOL '

  • How to use outer join condition in my below query.

    Hi All,
    How to use outer join condition in my below query.
    In the table  APPS_JP.GEDIS_OFFER_HEADER goh I have more records
    in the table APPS_JP.GEDIS_ORDER_BUILDS gob I have less number of records.
    I want all the records from APPS_JP.GEDIS_OFFER_HEADER goh
    including other conditions.
    I have tried goh.OFFER_NO=gob.OFFER_NO(+) but same result.
    [code]SELECT   GOH.ORIG_SYSTEM,
               gsp.USER_NAME,
               goh.ORDER_NO,
               goh.OMEGA_ORDER_NUMBER,
               goh.ORDER_TYPE,
               gc.CUSTOMER_ID,
               gc.OMEGA_CUSTOMER_NUMBER,
               CASE WHEN gc.PRIVATE = 'N' THEN gc.CUSTOMER_NAME ELSE '' END
                  AS COMPANY_NAME,
               goh.ORDER_STATUS,
               goh.TOTAL_SELLING_PRICE,
               goh.TOTAL_MARGIN,
                  ga1.ADDRESS1
               || ','
               || ga1.ADDRESS2
               || ','
               || ga1.ADDRESS3
               || ','
               || ga1.POSTAL_CODE
               || ','
               || ga1.CITY
                  AS SHIPPING_ADDRESS,
                  ga2.ADDRESS1
               || ','
               || ga2.ADDRESS2
               || ','
               || ga2.ADDRESS3
               || ','
               || ga2.POSTAL_CODE
               || ','
               || ga2.CITY
                  AS BILLING_ADDRESS,
               ga.ADDRESS_ID,
               gol.DESCRIPTION,
               APPS_JP.TZ.to_local_date (goh.OFFER_DATE, goh.OFFER_DATE_UTC)
                  AS OFFER_DATE,
               gc.LEVEL_8,
               goh.NO_OF_BUILDS,
               gob.SFDC_ID,
               goh.PURCHASE_ORDER_NO AS PO,
               gc1.CUSTOMER_NAME AS END_USAGE,
               gol.LOB,
               goh.TOTAL_MARGIN_PCT,
               goh.TOTAL_DISCOUNT,
               goh.TOTAL_DISCOUNT_PCT
        FROM   APPS_JP.GEDIS_OFFER_HEADER goh,
               APPS_JP.GEDIS_ORDER_BUILDS gob,
               APPS_JP.GEDIS_ORDER_LINES gol,
               APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER gorc,
               APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER ship,
               APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER bill,
               APPS_JP.GEDIS_CUSTOMER gc,
               APPS_JP.GEDIS_CUSTOMER gc1,
               APPS_JP.GEDIS_CONTACT gct,
               APPS_JP.GEDIS_ADDRESS ga,
               APPS_JP.GEDIS_ADDRESS_NORM ga1,
               APPS_JP.GEDIS_ADDRESS_NORM ga2,
               (SELECT   DISTINCT SALESPERSON_ID, USER_NAME
                  FROM   APPS_JP.GEDIS_SALESPERSON
                 WHERE   SALESPERSON_ID IN
                               (SELECT   TO_NUMBER (COLUMN_VALUE) AS SALESPERSON_ID
                                  FROM   TABLE (APPS_GLOBAL.SplitString ('337309'))))
               gsp
       WHERE       goh.ORDER_NO <> 0
               AND goh.OFFER_NO <> 0
               AND goh.OFFER_NO=gol.OFFER_NO
               AND gol.BUILD_NO = 1
               AND gol.LINE_NO = 1
               AND goh.OFFER_NO=gob.OFFER_NO
               AND gob.BUILD_NO = 1
               AND goh.OFFER_NO = gorc.OFFER_NO
               AND gct.CONTACT_ID = gorc.CONTACT_ID
               AND ga.CUSTOMER_ID = gc.CUSTOMER_ID
               AND ga.PRIMARY = 'Y'
               AND goh.LEAD_SALESPERSON=gsp.SALESPERSON_ID
               AND goh.OFFER_NO = ship.OFFER_NO
               AND ship.RELATION_TYPE = 'SHIP'
               AND ga1.ADDRESS_ID = ship.ADDRESS_ID
               AND ga1.CUSTOMER_ID = gc1.CUSTOMER_ID
               AND goh.OFFER_NO = bill.OFFER_NO
               AND bill.RELATION_TYPE = 'BILL'
               AND ga2.ADDRESS_ID = bill.ADDRESS_ID
               AND goh.OFFER_DATE BETWEEN APPS_JP.TZ.LOCAL_TO_DB_DATE (
                                             SYSDATE - 30
                                      AND  APPS_JP.TZ.LOCAL_TO_DB_DATE (SYSDATE)
               AND gorc.RELATION_TYPE = 'BASE'
               AND gorc.CUSTOMER_ID = gc.CUSTOMER_ID
               AND goh.SALES_CHANNEL = gc.SALES_CHANNEL
               AND gc.SALES_CHANNEL = 'SMB'
               AND goh.LEAD_SALESPERSON IN (goh.CREATED_BY, goh.LEAD_SALESPERSON)
    ORDER BY   goh.OFFER_NO;[/code]
    Please help me how to use this outer join condition.
    Thanks in advance.

    Hi,
    If you want all the rows from goh, then you don't want any conditions like  goh.OFFER_NO <> 0.
    Make all the joins to goh outer joins, and make all conditions that apply to any tables joined to goh (or to tables joined to them) part of the join condition, like this:
    FROM             APPS_JP.GEDIS_OFFER_HEADER     goh
    LEFT OUTER JOIN  APPS_JP.GEDIS_ORDER_BUILDS     gob  ON   gob.OFFER_NO = goh.OFFER_NO
                                                         AND  gob.BUILD_NO = 1
    LEFT OUTER JOIN  APPS_JP.GEDIS_ORDER_LINES      gol  ON   gol.OFFER_NO = goh.OFFER_NO
                                                         AND  gol.BUILD_NO = 1
                                                         AND  gol.LINE_NO  = 1
    LEFT OUTER JOIN  APPS_JP.GEDIS_OFFER_RELATED_CUSTOMER
                                                    gorc ...
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
    Simplify the problem as much as possible.  For example, do you really need all those tables to show what the problem is?  Of course, you need them in tyour real query, but if you understand a solution that only involves 4 or 5 tables, you'll know how to apply it to any number of tables.
    Explain, using specific examples, how you get those results from that data.Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ https://forums.oracle.com/message/9362002#9362002

  • How to use bash within sqlplus?

    How to use bash within sqlplus?
    meaning I am doing something like this to look for files within a particular directory with some condition.
    N=0
    for i in $(find . -path \*/waiting/* -type f -not -name "SS*" -mmin +120 -print) ; do
    testarray[$N]="$i"
    echo "$i"
    let "N= $N + 1"
    done
    Output from above script is as follows:
    /d1/d2/d3/d4/waiting/abcd.txt
    /d1/d2/d31/d42/waiting/pqrs.txt
    /d1/d2/d32/d43/waiting/xyz.txt
    And now I want to input this data into database with help of insert.
    and here is the little pl/sql block to insert the data with looping thing.
    sqlplus $CONNECT <<-EOF
    DECLARE
    Counter integer :=1;
    BEGIN
    WHILE Counter <= ${no_of_files} LOOP
    INSERT INTO stuck_files(COL_DATE,SER_NAME,TYPE_FILE,FILENAME,FILE_STATUS) VALUES (sysdate,'pqrs','pqrs','pqrs','pqrs');
    Counter := Counter + 1;
    END LOOP;
    END;
    commit;
    exit;
    EOF
    Mapping is as follows:
    COL_DATE,SER_NAME,TYPE_FILE,FILEFILENAME,FILE_STATUS
    sysdate,d3,d4,abcd.txt,waiting
    sysdate,d31,d42,pqrs.txt,waiting
    sysdate,d32,d3,xyz.txt,waiting
    any idea how to do that?
    Edited by: user9274197 on Apr 28, 2013 5:09 PM

    user9274197 wrote:
    How to use bash within sqlplus?
    meaning I am doing something like this to look for files within a particular directory with some condition.
    N=0
    for i in $(find . -path \*/waiting/* -type f -not -name "SS*" -mmin +120 -print) ; do
    testarray[$N]="$i"
    echo "$i"
    let "N= $N + 1"
    done
    Output from above script is as follows:
    /d1/d2/d3/d4/waiting/abcd.txt
    /d1/d2/d31/d42/waiting/pqrs.txt
    /d1/d2/d32/d43/waiting/xyz.txt
    And now I want to input this data into database with help of insert.
    and here is the little pl/sql block to insert the data with looping thing.
    sqlplus $CONNECT <<-EOF
    DECLARE
    Counter integer :=1;
    BEGIN
    WHILE Counter <= ${no_of_files} LOOP
    INSERT INTO stuck_files(COL_DATE,SER_NAME,TYPE_FILE,FILENAME,FILE_STATUS) VALUES (sysdate,'pqrs','pqrs','pqrs','pqrs');
    Counter := Counter + 1;
    END LOOP;
    END;
    commit;
    exit;
    EOF
    Mapping is as follows:
    COL_DATE,SER_NAME,TYPE_FILE,FILEFILENAME,FILE_STATUS
    sysdate,d3,d4,abcd.txt,waiting
    sysdate,d31,d42,pqrs.txt,waiting
    sysdate,d32,d3,xyz.txt,waiting
    any idea how to do that?
    Edited by: user9274197 on Apr 28, 2013 5:09 PMhttp://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:439619916584
    Cheers,

  • How to use fnd_user_resp_groups_api

    Hi Guys,
    I want to use fnd_user_resp_groups_api to set end date on all responsibilities.
    And also use it to clear the end dates after cloning on target.
    Please can some help help me with the syntax for fnd_user_resp_groups_api or metalink note for how to use the fnd_user_resp_groups_api.
    Thanks you kindly.
    Platform is unix
    11.5.10.2

    Hi Hssawan,
    Please I need your assistance here.
    Currently following the note 394784.1 which I have broken down in steps below:
    step 1.
    Therefore, first query fnd_user_resp_groups_direct to get the start_date for the existing assignment.
    step 2
    Then use the following API to end date it.
    if (fnd_user_resp_groups_api.assignment_exists(
    x.user_id, x.responsibility_id,
    x.RESPONSIBILITY_APPLICATION_ID)) then
    fnd_user_resp_groups_api.update_assignment(
    user_id => x.user_id,
    responsibility_id => x.responsibility_id,
    responsibility_application_id => x.RESPONSIBILITY_APPLICATION_ID,
    start_date => x.start_date,
    end_date => sysdate,
    description => null);
    end if;
    So from above syntax.. I am thinking I need to get the x.user_id, x.responsibility_id, responsibility_application_id for the responsibility that i want to modify the end_date.
    is this correct?
    If so then I went to I use the query below to get it.
    SELECT *
    FROM fnd_user_resp_groups_direct
    WHERE responsibility_id ='21344';
    USER_ID RESPONSIBILITY_ID RESPONSIBILITY_APPLICATION_ID
    2530 21344 190
    Ok now how do I use this info using the API?
    ... not sure so tried below.. which did not work.
    begin
    if (fnd_user_resp_groups_api.assignment_exists(
    '2530', '21344',
    190)) then
    fnd_user_resp_groups_api.update_assignment(
    user_id => '2350',
    responsibility_id => '21344',
    responsibility_application_id => '190',
    start_date => '27-OCT-04' ,
    end_date => null,
    description => null);
    end if;
    end
    please help!!!

  • Debugger - How to use it ?

    I'm lost ...
    I would know how to use the debugger in Oracle Forms 6i ...
    Tx in advance for your help,
    Xav.

    En fait, ce qui se passe, c'est que j'utilise un When Mouse click trigger pour ouvrir un nouveau formulaire. Dans ce nouveau formulaire, j'entre un numiro de dossier que je veux ricupirer dans mon form appelant.
    Mon trigger ressemble a ca :
    Open_form('D:\Forms\creer_dossier.fmx');
    Go_block('dossier');
    :dossier.ouverture := sysdate;
    :dossier.num_dossier := :global.num_dossier;
    La variable globale est celle que j'ai ricupirie ` la cloture de mon formulaire appeli.
    Et donc, apparement, une fois que le formulaire a iti ouvert, il quite le trigger, sans effectuer les autres actions. Cela expliqerait pourquoi, lorsque je met mon break point sur l'affectation de ma variale, il ne s'arrete pas ..
    Qu'en penses-tu ?
    Xav.
    As-tu une adresse email ou je peux te contacter ?
    null

  • Using SYSDATE in RMAN script

    Hi
    Each night I move an RMAN backup from a PROD server to a test server.
    Then using RMAN script with NOCATALOG, I restore/recover the database on the test server as show below:
    RUN{
    ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
    STARTUP NOMOUNT;
    RESTORE CONTROLFILE from AUTOBACKUP;
    SHUTDOWN;
    STARTUP FORCE MOUNT;
    RESTORE DATABASE;
    RECOVER DATABASE;
    ALTER DATABASE OPEN RESETLOGS;
    Of course the script fails at the "RECOVER DATABASE" command because it runs out of ARCH logs to apply at some point and therefore never gets to the final command of DATABASE OPEN. I would like to change that line to something like:
    RECOVER DATABASE UNTIL TIME 'SYSDATE:02:45:00';
    The above fails with an RMAN error of "expected number".
    Of course I could use SET UNTIL TIME "to_date('SYSDATE 02:45:00','DD-MON-YYYY HH24:MI:SS')"; although I have the same problem, i.e., getting RMAN to accept SYSDATE as the date portion of the point in time recovery.
    Oddly, from an RMAN prompt and within brackets, I can issue the following command successfully:
    RMAN {
    set until time "to_date('SYSDATE 02:45:00','DD-MON-YYYY HH24:MI:SS')";
    command completed successfully
    So my question is, how can I use SYSDATE in an RMAN point in time recovery and have sysdate represent the current date, either in the RECOVER DATABASE line or the SET UNTIL TIME line?
    Thanks.

    user522620 wrote:
    Hi
    Each night I move an RMAN backup from a PROD server to a test server.
    Then using RMAN script with NOCATALOG, I restore/recover the database on the test server as show below:
    RUN{
    ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
    STARTUP NOMOUNT;
    RESTORE CONTROLFILE from AUTOBACKUP;
    SHUTDOWN;
    STARTUP FORCE MOUNT;
    RESTORE DATABASE;
    RECOVER DATABASE;
    ALTER DATABASE OPEN RESETLOGS;
    So my question is, how can I use SYSDATE in an RMAN point in time recovery and have sysdate represent the current date, either in the RECOVER DATABASE line or the SET UNTIL TIME line?
    Thanks.
    Given:
    SQL> alter session set NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';
    SQL> select to_char(trunc(sysdate)+(2/24)+(45/1440),'dd-mon-yyyy hh24:mi') from
    dual;
    TO_CHAR(TRUNC(SYS
    25-JUN-2012 02:45:00
    Use this (uses to_date)
    RUN{
    set until time "to_date(trunc(sysdate)+(2/24)+(45/1440),'DD-MON-YYYY HH24:MI:SS')";
    ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
    STARTUP NOMOUNT;
    RESTORE CONTROLFILE from AUTOBACKUP;
    SHUTDOWN;
    STARTUP FORCE MOUNT;
    RESTORE DATABASE;
    RECOVER DATABASE;
    ALTER DATABASE OPEN RESETLOGS;
    ## if that command fails, it will fall to the next command as the run blocks are autonomous.
    RUN{
    ALTER DATABASE OPEN RESETLOGS;
    }

  • How to use TRUNC function with dates in Expression Builder in OBIEE.

    Hi There,
    How to use TRUNC function with dates in Expression Builder in OBIEE.
    TRUNC (SYSDATE, 'MM') returns '07/01/2010' where sysdate is '07/15/2010' in SQL. I need to use the same thing in expression builder in BMM layer logical column.
    Thanks in advance

    use this instead:
    TIMESTAMPADD(SQL_TSI_DAY, ( DAYOFMONTH(CURRENT_DATE) * -1) + 1, CURRENT_DATE)

  • Can I use SYSDATE in the WHERE clause to limit the date range of a query

    Hi,
    Basicaly the subject title(Can I use SYSDATE in the WHERE clause to limit the date range of a query) is my question.
    Is this possible and if it is how can I use it. Do I need to join the table to DUAL?
    Thanks in advance.
    Stelios

    As previous poster said, no data is null value, no value. If you want something, you have nvl function to replace null value by an other more significative value in your query.<br>
    <br>
    Nicolas.

  • Using sysdate in a ejb 3.0 named query

    Hello,
    Giving the following ejb 3 Named query:
    @NamedQuery(name = "DcaMessage.findNew", query = "select o from DcaMessage o where o.nbAvisEmis<1 or (o.indMsgConsulte=0 and sysdate-o.dtDernierAvis>:nbJours)")
    The result is:
    Exception [TOPLINK-8004] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.EJBQLException
    Exception Description: A parsing problem was encountered resolving the alias - [sysdate].
    How do I use sysdate (or any other element) to compute the number of days between now and the date defined in dtDernierAvis?
    Thanks

    Hi,
    According to the EJB 3.0 specification, there are three date and time functions that can be used in EQL:
    functions_returning_datetime:=
    CURRENT_DATE |
    CURRENT_TIME |
    CURRENT_TIMESTAMP
    The datetime functions return the value of current date, time, and timestamp on the database server.
    I suppose your query should look like this
    @NamedQuery(name = "DcaMessage.findNew", query = "select o from DcaMessage o where o.nbAvisEmis<1 or (o.indMsgConsulte=0 and CURRENT_DATE-o.dtDernierAvis>:nbJours)")
    I never used these three functions myself, but it should be something like that.
    HTH, Wouter van Reeven

  • How to use oracle.sql.* package?(in nls_charset12.zip)

    is there anyone could tell me how to use the method in this package? for i want to convert a character set from the database (solaris)default character set to the client(win2000) while storing data into ResultSet.
    or anyway that could chnage it would be appricate.
    thanks in advice,

    Hello Gaurav,
    First off, not sure why you are calling
    call.addNamedArgument("JOB_ID", "JOB_ID_I");
    call.addNamedArgumentValue("JOB_ID", jobId);
    You should call the first statement to indicate you will be adding in a "JOB_ID_I" argument to the query, or the second statement to add the value directly to the call, but not both. Calling both indicates your procedure is expecting two parameters called "JOB_ID" and you will get an exception if you do not define the "JOB_ID_I" argument on the query and pass in a parameter for it.
    TopLink does not currently create Oracle objects such as Structs and VARRAYs for you from java objects - atleast not for stored procedures arguments, as it does not know how or what to convert them to. You will need to create the Oracle object type yourself, and pass it into the query. I have not tested it, but it would look something like:
    UnitOfWork unitOfWork = getUnitOfWork();
    StoredProcedureCall call = new StoredProcedureCall();
    call.setProcedureName("DSM_JOB_PKG.INSERT_JOB_RUN_LOG");
    String jobId = jobIdItr.next().toString();
    call.addNamedArgumentValue("JOB_ID_I", jobId);
    Timestamp sysdate = BeanConvertUtil.getCurrentTimestamp();
    call.addNamedArgumentValue("ORDER_DATE_I", sysdate);
    call.addNamedArgumentValue("USER_ID_I", userId);
    Connection con = getSession().getAccessor().getConnection();
    oracle.sql.ArrayDescriptor anArrayDescriptor = new oracle.sql.ArrayDescriptor("GENERIC_STRING_TYPE",con);
    oracle.sql.ARRAY anARRAYin = new ARRAY(anArrayDescriptor, con, paramTypeIds );
    call.addNamedArgumentValue("JOB_PARAM_TYPE_IDS_I", anARRAYin );
    oracle.sql.ARRAY anARRAYin2 = new ARRAY(anArrayDescriptor, con, paramValues);
    call.addNamedArgumentValue("JOB_PARAM_VALUES_I", anARRAYin2 );
    session.executeSelectingCall(call);

  • How to use date column index

    Hi,
    Why is that I got different results for my queries?
    Note that emp_date is indexed, so i dont want to use
    a function to it.
    QUERY1(full table scan)
    SELECT COUNT(*) FROM EMP WHERE TRUNC(EMP_DATE)=TRUNC(SYSDATE-30); (RESULT=8,842)
    QUERY2
    SELECT COUNT(*) FROM EMP WHERE
    EMP_DATE >=(SYSDATE-30) and EMP_DATE < (SYSDATE-30); (RESULT=0)
    QUERY3
    SELECT COUNT(*) FROM EMP WHERE
    EMP_DATE BETWEEN TRUNC(SYSDATE-30) and TRUNC(SYSDATE-30); (RESULT=2,100)
    Please help me how to use indexed date column...

    > Why is that I got different results for my queries?
    Because your queries are different.
    1) This one selects all records on 20 october, regardless of their time component
    2) This one selects all records with an emp_date at least being 20 october 14:56:30 AND being smaller than 20 october 14:56:30. No record will ever satisfy this condition.
    3) This one selects all records on 19./20 october at midnight 00:00:00
    Please see this example:
    SQL> create table myemp (emp_date)
      2  as
      3   select trunc(sysdate) - 30 +
      4          case
      5          when level <= 2100 then 0
      6          when level <= 8842 then dbms_random.value(1,86399)/86400
      7          else 2
      8          end
      9     from dual
    10  connect by level <= 100000
    11  /
    Tabel is aangemaakt.
    SQL> create index i1 on myemp(emp_date)
      2  /
    Index is aangemaakt.
    SQL> exec dbms_stats.gather_table_stats(user,'myemp',cascade=>true)
    PL/SQL-procedure is geslaagd.
    SQL> set autotrace on explain
    SQL> select count(*) from myemp where trunc(emp_date)=trunc(sysdate-30)
      2  /
                                  COUNT(*)
                                      8842
    1 rij is geselecteerd.
    Uitvoeringspan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=88 Card=1 Bytes=8)
       1    0   SORT (AGGREGATE)
       2    1     TABLE ACCESS (FULL) OF 'MYEMP' (Cost=88 Card=1000 Bytes=
              8000)
    SQL> select count(*) from myemp where
      2  emp_date >=(sysdate-30) and emp_date < (sysdate-30)
      3  /
                                  COUNT(*)
                                         0
    1 rij is geselecteerd.
    Uitvoeringspan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=8)
       1    0   SORT (AGGREGATE)
       2    1     FILTER
       3    2       INDEX (RANGE SCAN) OF 'I1' (NON-UNIQUE) (Cost=4 Card=2
              50 Bytes=2000)
    SQL> select count(*) from myemp where
      2  emp_date between trunc(sysdate-30) and trunc(sysdate-30)
      3  /
                                  COUNT(*)
                                      2100
    1 rij is geselecteerd.
    Uitvoeringspan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=8)
       1    0   SORT (AGGREGATE)
       2    1     FILTER
       3    2       INDEX (RANGE SCAN) OF 'I1' (NON-UNIQUE) (Cost=4 Card=2
              50 Bytes=2000)
    > Please help me how to use indexed date column...
    Use this query instead:
    SQL> select count(*)
      2    from myemp
      3   where emp_date between trunc(sysdate)-30 and trunc(sysdate)-29 - interval '1' second
      4  /
                                  COUNT(*)
                                      8842
    1 rij is geselecteerd.
    Uitvoeringspan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=8)
       1    0   SORT (AGGREGATE)
       2    1     FILTER
       3    2       INDEX (RANGE SCAN) OF 'I1' (NON-UNIQUE) (Cost=4 Card=2
              50 Bytes=2000)Regards,
    Rob.

  • How to convert sysdate to the format dd-mon-yyyy

    how to convert sysdate to the format dd-mon-yyyy

    <how to convert sysdate to the format dd-mon-yyyy>
    This question is better answered by thinking about about how Oracle dates work. SYSDATE is a pseudocolumn (function without any arguments) that returns a date value: it already is a date. Oracle date values are stored not as we see them, say 'DD-MON-YY', but as a series of bytes with the different date components from the millennium down to the second. We NEVER see dates as they are stored but use the formats for automatic conversion.
    To display a date the way you want use TO_CHAR() with an edit mask or as others suggested change your NLS_DATE_FORMAT (thought I advise against this as most systems use DD-MON-YY and porting queries from other systems or even OTN can easily break). To change a converted string back to a date use TO_DATE() with an edit mask.

  • How to use Operating System Commands while using define in sqlplus

    How to use Operating System Commands while using define in sqlplus . The Host OS is Linux
    define report_name=PROD_${host date "+%b"}.html
    The above is not working.
    The output should be 
    define report_name=PROD_JAN.html
    Regards,
    DB

    of course I was talking nonsense: the problem here is the mixing of bind variables and DEFINE variables.
    With the following changes the script should work (the conditions for begin_interval_time are perhaps not what you want):
    variable snap1 number
    variable snap2 number
    variable rptname varchar2(20)
    begin
    SELECT min(snap_id) into :snap1 FROM dba_hist_snapshot WHERE CAST(begin_interval_time AS DATE) >= SYSDATE-1;
    SELECT max(snap_id) into :snap2 FROM dba_hist_snapshot WHERE CAST(begin_interval_time AS DATE) >= SYSDATE-1;
    end;
    col file_name_value new_value report_name noprint
    select 'PROD_'|| to_char(sysdate,'MON') || '_' ||  to_char(sysdate,'DD') file_name_value  from dual;
    define  report_type  = 'html'
    define num_days=2
    define begin_snap=:snap1
    define end_snap=:snap2
    @@?/rdbms/admin/awrrpt.sql

Maybe you are looking for

  • Cannot import photos from SD card into USB card reader after 10.4.10 update

    Prior to the 10.4.10 update, I used a USB media card reader to import photos from my Canon camera's SD card and it worked fine. I just tried to do that for the first time since I installed the 10.4.10 update, and now the memory card doesn't show up i

  • Is xpath.js still part of spry?

    Looking ath the changes to SpryData.js between v. 1.6.1 (0.45) and v. 1.7 (0.49) I see that use of the Google XPath library (part of AJAXSLT) is now optional, and Spry Will try to handle the "80% case"     // The Google XPath library is *NOT* availab

  • Firmware Update for my blackberry 8830 world edition with Bell Canada

    Hi does anyone know if there is firmware update for the Blackberry 8830 world edition with the carrier being Bell Canada?  I am running version 4.2 and I know there is 4.5 but I am not sure if this applies the my phone with Bell Canada. When I boot u

  • How to execute classes that reside in different user's schema

    I have to load a class in App1 and need to register a Java Stored Procedure in App2. This procedure refers class loaded in App1. Finally the procedure is to be executed from app1 user. I am working with oracle database. It has two schemas App1 and Ap

  • I need to reinstall many Creative Cloud applications, but I am unable to do so

    I need to reinstall many Creative Cloud applications, but I am unable to do so because I am told the Application Manager is damaged. I have reinstalled it, but the problem continues.  Any helpful ideas? I am using MAC OS X LION Version 10.7.5 Thank y