Query for select statement

Dear all
is there any option in select statement to automatically generate serial number respect of data.
for eg.
1 101100110  shetal trade
2 1110001178 CHEMICAL SOAP WORKS
3..
4..
i don't  want to use loop (sy-tabix) ..
thanks,
Abhi

Hi ,
i don't want to use loop (sy-tabix) ..
any particular reason for this ?
as u cannot automatically generate serial number, u have to go for loop....endloop.
Thanks
Karthik

Similar Messages

  • Error while executing a sql query for select

    HI All,
    ORA-01652: unable to extend temp segment by 128 in tablespace PSTEMP i'm getting this error while i'm executing the sql query for selecting the data.

    I am having 44GB of temp space, while executing the below query my temp space is getting full, Expert please let us know how the issue can be resolved..
    1. I dont want to increase the temp space
    2. I need to tune the query, please provide your recomendations.
    insert /*+APPEND*/ into CST_DSA.HIERARCHY_MISMATCHES
    (REPORT_NUM,REPORT_TYPE,REPORT_DESC,GAP,CARRIED_ITEMS,CARRIED_ITEM_TYPE,NO_OF_ROUTE_OF_CARRIED_ITEM,CARRIED_ITEM_ROUTE_NO,CARRIER_ITEMS,CARRIER_ITEM_TYPE,CARRIED_ITEM_PROTECTION_TYPE,SOURCE_SYSTEM)
    select
    REPORTNUMBER,REPORTTYPE,REPORTDESCRIPTION ,NULL,
    carried_items,carried_item_type,no_of_route_of_carried_item,carried_item_route_no,carrier_items,
    carrier_item_type,carried_item_protection_type,'PACS'
    from
    (select distinct
    c.REPORTNUMBER,c.REPORTTYPE,c.REPORTDESCRIPTION ,NULL,
    a.carried_items,a.carried_item_type,a.no_of_route_of_carried_item,a.carried_item_route_no,a.carrier_items,
    a.carrier_item_type,a.carried_item_protection_type,'PACS'
    from CST_ASIR.HIERARCHY_asir a,CST_DSA.M_PB_CIRCUIT_ROUTING b ,CST_DSA.REPORT_METADATA c
    where a.carrier_item_type in('Connection') and a.carried_item_type in('Service')
    AND a.carrier_items=b.mux
    and c.REPORTNUMBER=(case
    when a.carrier_item_type in ('ServicePackage','Service','Connection') then 10
    else 20
    end)
    and a.carrier_items not in (select carried_items from CST_ASIR.HIERARCHY_asir where carried_item_type in('Connection') ))A
    where not exists
    (select *
    from CST_DSA.HIERARCHY_MISMATCHES B where
    A.REPORTNUMBER=B.REPORT_NUM and
    A.REPORTTYPE=B.REPORT_TYPE and
    A.REPORTDESCRIPTION=B.REPORT_DESC and
    A.CARRIED_ITEMS=B.CARRIED_ITEMS and
    A.CARRIED_ITEM_TYPE=B.CARRIED_ITEM_TYPE and
    A.NO_OF_ROUTE_OF_CARRIED_ITEM=B.NO_OF_ROUTE_OF_CARRIED_ITEM and
    A.CARRIED_ITEM_ROUTE_NO=B.CARRIED_ITEM_ROUTE_NO and
    A.CARRIER_ITEMS=B.CARRIER_ITEMS and
    A.CARRIER_ITEM_TYPE=B.CARRIER_ITEM_TYPE and
    A.CARRIED_ITEM_PROTECTION_TYPE=B.CARRIED_ITEM_PROTECTION_TYPE
    AND B.SOURCE_SYSTEM='PACS'
    Explain Plan
    ==========
    Plan
    INSERT STATEMENT ALL_ROWSCost: 129 Bytes: 1,103 Cardinality: 1                                                        
         20 LOAD AS SELECT CST_DSA.HIERARCHY_MISMATCHES                                                   
              19 PX COORDINATOR                                              
                   18 PX SEND QC (RANDOM) PARALLEL_TO_SERIAL SYS.:TQ10002 :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1                                         
                        17 NESTED LOOPS PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,103 Cardinality: 1                                    
                             15 HASH JOIN RIGHT ANTI NA PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 129 Bytes: 1,098 Cardinality: 1                               
                                  4 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 63 Bytes: 359,283 Cardinality: 15,621                          
                                       3 PX SEND BROADCAST PARALLEL_TO_PARALLEL SYS.:TQ10001 :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621                     
                                            2 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621                
                                                 1 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1001Cost: 63 Bytes: 359,283 Cardinality: 15,621           
                                  14 NESTED LOOPS ANTI PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 40,256,600 Cardinality: 37,448                          
                                       11 HASH JOIN PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 65 Bytes: 6,366,160 Cardinality: 37,448                     
                                            8 BUFFER SORT PARALLEL_COMBINED_WITH_CHILD :Q1002               
                                                 7 PX RECEIVE PARALLEL_COMBINED_WITH_PARENT :Q1002Cost: 1 Bytes: 214 Cardinality: 2           
                                                      6 PX SEND BROADCAST PARALLEL_FROM_SERIAL SYS.:TQ10000 Cost: 1 Bytes: 214 Cardinality: 2      
                                                           5 INDEX FULL SCAN INDEX CST_DSA.IDX$$_06EF0005 Cost: 1 Bytes: 214 Cardinality: 2
                                            10 PX BLOCK ITERATOR PARALLEL_COMBINED_WITH_CHILD :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448                
                                                 9 MAT_VIEW ACCESS FULL MAT_VIEW PARALLEL_COMBINED_WITH_PARENT CST_ASIR.HIERARCHY :Q1002Cost: 63 Bytes: 2,359,224 Cardinality: 37,448           
                                       13 TABLE ACCESS BY INDEX ROWID TABLE PARALLEL_COMBINED_WITH_PARENT CST_DSA.HIERARCHY_MISMATCHES :Q1002Cost: 0 Bytes: 905 Cardinality: 1                     
                                            12 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT SYS.HIERARCHY_MISMATCHES_IDX3 :Q1002Cost: 0 Cardinality: 1                
                             16 INDEX RANGE SCAN INDEX PARALLEL_COMBINED_WITH_PARENT CST_DSA.IDX$$_06EF0001 :Q1002Cost: 1 Bytes: 5 Cardinality: 1

  • Query for selecting the 4 highest marks of the student

    query for selecting the 4 highest marks of the student

    Guys dont start an argument,
    tey this one; please
    Hi,
    Try this
    Top 4
    Select ename,
    sale
    From dept d,
    emp e1
    Where d.deptno = e1.deptno
    And &p > (Select Count(e2.sal)
    From emp e2
    Where e2.sal > e1.sal
    And e2.deptno = e1.deptno
    Order By 1,2
    Bottom 4
    Select ename,
    sale
    From dept d,
    emp e1
    Where d.deptno = e1.deptno
    And &p > (Select Count(e2.sal)
    From emp e2
    Where e2.sal < e1.sal
    And e2.deptno = e1.deptno
    Order By 1, 2
    &P you use any value say 3,4,5,6
    This is top N analysis
    Regards
    Umesh

  • Query for selecting first  3 characters of name of any person

    query for selecting first 3 characters of name of any person

    10:52:44 SQL> SELECT SUBSTR(ename, 1, 3) first_three FROM emp;
    FIRST_THREE
    SMI
    ALL
    WAR
    JON
    MAR
    BLA
    CLA
    SCO
    KIN
    TUR
    ADA
    FIRST_THREE
    JAM
    FOR
    MIL
    Ton
    15 rows selected.
    Elapsed: 00:00:00.00

  • Query for select CLOB data field

    Hi All,
    I want to know how to write a SQL query for select CLOB tyoe data from a tablw. when I am trying to use the simple SQL it gives an messageLOB types requires OCI8 mode and currently uasing OCI7 ode.
    Also I am not aware of oci mode?
    If its working for OCI8 mode how I should changer it in to OCI8 mode? (I am using 10g rel 2)
    Thans and regards
    Buddhike

    Hi ,
    i don't want to use loop (sy-tabix) ..
    any particular reason for this ?
    as u cannot automatically generate serial number, u have to go for loop....endloop.
    Thanks
    Karthik

  • Timesten create a lock for select statement through sqldev

    When use ttisql connect to TimesTen Release 7.0.6.15.0 at autocommit=1, there is no lock for select statement.
    but when I use sql developer (driver is ttjdbc5.jar, regardless of version) to connect, even with autocommit=1, there will be locks for select statement.
    Is it a bug? How can I achieve the same no locks for select statement through sql developer?Thanks.

    -your update tells me that you are connected to a remote timesten data store using the client driver
    -the ttXactAdmin output indicates that SqlNavigator has a shared lock on the database itself: this will not interfere with anybody else' read operations, and I believe that until such time as you actually attempt some kind of DML against the data store that th IX lock on the database lock will not interfere with any other DML either.
    -a shared database lock will always be acquired for any transaction in TimesTen. You can test this for yourself from ttisql: set autocommit off, perform a simple update and do not commit the transaction. Then open a separate session and execute ttxactadmin - you will the IX database lock as well as the various locks on tables and indexes.
    -I believe this pretty much proves my original thinking: that sqlDeveloper attaches to TimesTen in transaction mode. However, the IX lock on the database will not interfere with anybody else's work and should not be a problem.

  • Re:Query for Stock Statement for a particular item..!!!!

    Dear SAP Experts,
    I need a stock statement query  for a particular item which contains:
    1.ItemCode
    2.Item Description
    3.Item Price
    4.Opening
    5.Receipts
    6.Issues
    7.Closing
    8. Value
    The selection criteria are:
    1.Warehouse code
    2.Item Name
    3.Posting Date
    Plz give me a good solution for this issue.
    With Regards,
    Revathy

    Check this
    Declare @FromDate Datetime
    Declare @ToDate Datetime
    set @FromDate =
        (Select min(S0.Docdate) from OINM S0 where S0.Docdate >='[%0]')
    set @ToDate =
        (Select max(S1.Docdate) from OINM S1 where S1.Docdate <='[%1]')
    select * from
        SELECT T0.itemcode,
        min(T0.Dscription) as 'Item Description',
        min(B1.ItmsGrpNam) as 'Item Group', W1.Whscode, C1.Location,
        (isnull((
            Select sum(isnull(inqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode
            and O1.Warehouse=W1.Whscode
            and O1.docdate<@FromDate ),0)-
        isnull((
            Select sum(isnull(outqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode
            and O1.Warehouse=W1.Whscode
            and O1.docdate<@FromDate),0)
        ) as [Opening Stock],
        isnull((
            Select sum(isnull(inqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode
            and O1.Warehouse=W1.Whscode
            and O1.docdate>=@FromDate
            and O1.docdate<=@ToDate and O1.inqty>0
            and O1.transtype in (20,18)),0
        ) as [Purchase Quantity],
        isnull((
            Select sum(isnull(outqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode and O1.Warehouse=W1.Whscode
            and O1.docdate>=@FromDate and O1.docdate<=@ToDate
            and O1.outqty>0 and O1.transtype in (21,19)),0
        ) as [Purchase Return Quantity],
       isnull((
            Select sum(isnull(outqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode and O1.Warehouse=W1.Whscode
            and O1.docdate>=@FromDate and O1.docdate<=@ToDate and O1.outqty>0
            and O1.transtype in (13,15)),0
        ) as [sale Quatity],
        (isnull
            Select sum(isnull(inqty,0))
            from OINM O1
            where O1.itemcode=T1.itemcode and O1.Warehouse=W1.Whscode
            and O1.docdate<=@ToDate),0
            isnull((
                Select sum(isnull(outqty,0))
                from OINM O1
                where O1.itemcode=T1.itemcode and O1.Warehouse=W1.Whscode
                and O1.docdate<=@ToDate),0)
        ) as [Closing Stock]
        FROM OINM T0
        INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode
        INNER JOIN OITW T2 ON T1.ItemCode = T2.ItemCode
        INNER JOIN OITB B1 ON T1.ItmsGrpCod=B1.ItmsGrpCod
        INNER JOIN OWHS W1 ON T2.WhsCode = W1.WhsCode
        INNER JOIN OLCT C1 ON W1.Location=C1.Code
        Group by T1.itemcode, T0.Itemcode, W1.WhsCode, C1.Location
    ) a
    where (a.[Opening Stock]
            +a.[Purchase Quantity]
            + a.[Purchase Return Quantity]
            +a.[sale Quatity]+a.[Closing Stock]
           ) !=0
    Regards,
    Bala

  • Dynamic sql for select statement

    Hi,
    Please help me with the below code:
    It is updating null if the select statment returns one values. If it fetches multiple values then it throughs the below error msg when running the program.
    Please let me know how to modify the below code. Or let me know is there anyother way to write this code.
    Logic for development:
    * View name should be passed as dynamic.
    CREATE OR REPLACE
    PROCEDURE "PKEP_LOAD_SO_EU" (p_var1 IN VARCHAR2)
    IS
    lv_sql VARCHAR2 (4000);
    lv_name VARCHAR2 (20);
    BEGIN
    lv_sql :=
    ' SELECT DISTINCT LEVEL2
    FROM BIIO_SALES_OB_IMPORT_'|| p_var1;
    EXECUTE IMMEDIATE lv_sql
    INTO lv_name;
    BEGIN
    UPDATE BIIO_SALES_OB_IMPORT_NA2 --table name for updation
    SET SOB_1 = NULL,
    SOB_DATE_1 = NULL
    WHERE level2 = lv_name; -- validation ( eg. Select distinct level2 from biio_sales_ob_import_'||p_var1)
    COMMIT;
    EXCEPTION
    WHEN OTHERS
    THEN
    DBMS_OUTPUT.put_line (SQLERRM);
    NULL;
    END;
    END;
    BEGIN
    PKEP_LOAD_SO_EU ('NA1');
    end;
    Error report:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at "DEMANTRA.PKEP_LOAD_SO_EU", line 11
    ORA-06512: at line 2
    01422. 00000 - "exact fetch returns more than requested number of rows"
    *Cause:    The number specified in exact fetch is less than the rows returned.
    *Action:   Rewrite the query or change number of rows requested
    Thanks.
    Padma

    Padu wrote:
    Please let me know whether is anyother way to write this code as im a beginner for SQl.You dont need to have a seperate SELECT statement. Just a single UPDATE will do the job for you.
    create or replace procedure pkep_load_so_eu
       p_var1 in varchar2
    as
    begin
       lSql := ' update biio_sales_ob_import_na2               ' ||
               '    set sob_1      = null                    ' ||
            '      , sob_date_1 = null                    ' ||
            '  where level2 in (                         ' ||
            '                    select level2               ' ||
            '                      from biio_sales_ob_import_'       || p_var1 ||
       execute immediate lSql;
    end;

  • Runtime error for SELECT statement

    Hi All,
    I have written a SELECT statement as follows in my code.
    select budat pernr aufnr vornr from AFRU
    into corresponding fields of table it_vornr
    for all entries in it_cats_tmp
    where budat = it_cats_tmp-workdate
    and pernr = it_cats_tmp-pernr
    and aufnr = it_cats_tmp-rnplnr.
    The table IT-CATS_TMP is having around 3000+ lines.
    When control moves to this statement, the system is throwing Runtime error or its taking around 30 minutes time to execute.
    If i query the same table (AFRU) in SE11 for the same set of conditions, the table displays relevent data immediately.
    What might be the reason for this delay/Runtime Error?
    Shall i need to change the syntax for better performance?
    Your guidelines are highly appreciated......
    Regards
    Pavan

    Hi
    1. Try to put WHERE conditions for KEY FIELDS.
    Solution: Create a RANGE for the key fields & put that in SELECT Query.
    DATA: gr_rueck TYPE RANGES OF afru-rueck.
    SELECT .. WHERE rueck IN gr_rueck.
    2. Avoid using CORRESPONDING FIELDS OF TABLE in SELECT.
    Solution: Change internal table fields ORDER.
    TYPES:
    BEGIN OF TY_VORNR,
      budat TYPE ..
      pernr TYPE ..
      aufnr TYPE ..
      vornr TYPE ..
      ... " Other fields
    END OF TY_VORNR.
    SELECT .. INTO TABLE IT_VORNR ...

  • A test query for selecting by ticketid

    This is a test query to select tickets by ticketid , starting with the most recent, as to get the top5 most recent tickets. There will be still mistakes in it. please don't tell me those about stupid mistakes,and spaces, at first and obvious syntax mistakes. Otherwise I don't learn it. My question has to do with the loop. Do you think it is useful to use a loop for this, or should it stay as it is, or should it be something else.
    DECLARE
    Define, and open a cursor;
    min_ticket NUMBER; -- minimum ticketid
    laatste_ticket NUMBER; -- latest ticketid
    tussen_ticket NUMBER; -- in between ticket
    Query_to_use VARCHAR2(4000);
    BEGIN
    Select max(ticketid) into laatste_ticketid from ticket;
    Select count(*) into teller from ticket where (ticketid<laatste_ticketid ) AND (ticketid>(laatste_ticketid-6));
    Select ticketid, categoriecd, titel into cursor from ticket where (ticketid<laatste_ticketid ) AND (ticketid>(laatste_ticketid-6));
    Select min(ticketid) into min_ticketid from ticket;
    If teller= < 5
         If teller = 5
              Query_to_use := Query_to_use || ';';
              Return Query_to_use;
         else
              --Loop through records from laatste_ticketid to min_ticketid
                   Select gebruikerid into te_testen_veld from ticket where ticketid = tussen_ticketid ;
                   If te_testen_veld is NULL THEN
                        tussen_ticketid := tussen_ticketid - 1;
                        te_testen_veld := NULL;
                   Else
    Query_to_use := query_to_use || ' UNION select ticketid, categoriecd, titel from ticket '||
                   ' where ticketid = tussen_ticketid ';
                   te_testen_veld := NULL;
                   Teller := teller + 1;
                        If (teller < 5)
                             tussen_ticketid := tussen_ticketid - 1;
                        Else if (teller = 5)
                             teller := 6;
                        End if;
                   End if;
              --End Loop;
         End if;
    End if;
    Query_to_use := Query_to_use || ';';
    Return Query_to_use;
    END;

    You can get all this using one SQL statement, without resorting to explicit cursors. Have a look at http://asktom.oracle.com and search for Top-N Query.
    Depending on what you are doing, you may want to use a cursor for loop.
    I assume this is for some sort of electronic queueing system. if you gave us more detail as to what you are trying to do, you may get better advice.

  • Query on Select Statement

    Dear All,
            I have a small query on the Select Statement. If there are 2 identical rows and if i am retrieving them using the Select Statement, then will the select statement retrieves both the rows which are identical or only the first possible occurence? Pls help me out in this.
    Thanks,
    Sirisha.

    Hi,
         That depends on the statement u use. If u use, 'SELECT' statment, u can retrieve all the records which are identical with one or few fields. For that, u need to put the output INTO A TABLE.
    Ex. 1
    data : int_ekko type table of ekko with header line,
             fs_ekko type ekko.
    select * from ekko into table int_ekko where ebeln = '6361003191'.
    Here, int_ekko is an internal table contains all records whose EBELN = 63610003191.
    2)  If u use 'SELECT  SINGLE', then it will retrieve only the first record out of all the records who satisfy the condition EBELN = 6361003191.
    Ex 2:
    select single * from ekko into fs where ebeln = '63610003191'.
    'fs' is not a table, just of type structure. so contains only one record.
    Hope it help u..
    Kindly reward points if hepful
    Regards,
    Shanthi.
    Edited by: Shanthi on Mar 4, 2008 8:17 AM

  • Create object type from multiple tables for select statement

    Hi there,
    I have 3 tables as given below and I wish to create an object type to group selected columns as 'attribute' from multiple tables. 
    I need to create 2 input parameters to pass in - 'attribute' and 'attribute value'  in PL/SQL and these 2 parameters will be
    passing in with 'column name' and 'column value'.  e.g. 'configuration' - the column name, 'eval' - the column value.
    Then, the PL/SQL will execute the select statement with the column and column value provided to output the record. 
    Pls advise and thank you.
    table ccitemnumber
    name                           null     type                                                                                                   
    ccitemnumber                   not null varchar2(20)                                                                                                                                                                                    
    configuration                           varchar2(20)
    item_type                               varchar2(30)
    table productmodel
    productmodelnumber             not null varchar2(6)                                                                                            
    description                             varchar2(60)  
    accesstimems                            number                                                                                                 
    numberofheads                           varchar2(2)
    generation                              varchar2(10)
    numberofdiscs                           varchar2(2)
    factoryapplication                      varchar2(150)
    table topmodel
    stmodelnumber                  not null varchar2(30)                                                                                           
    productfamily                           varchar2(60
    formfactor                              varchar2(10)                                                                                           
    modelheight                             varchar2(10)                                                                                           
    formattedcapacity                       number                                                                                                 
    formattedcapacity_uom                   varchar2(20)
    object type in database
    configuration                           varchar2(20)
    item_type                               varchar2(30)
    numberofheads                           varchar2(2)
    generation                              varchar2(10)
    numberofdiscs                           varchar2(2)
    factoryapplication                      varchar2(150)
    modelheight                             varchar2(10)
    formattedcapacity                       number                                                                                                 
    formattedcapac

    user12043838 wrote:
    Reason to do this as these fields are required to be grouped together as they are created in different tables. They are treated as 'attribute' (consists of many columns) of the part number. So, the PL/SQL is requested to design in a way able for user to pass in the column name and column value or part number, then the select statement should be able to query for the records. Another reason is a new column can be added easily without keep modifying those effected programs. Reuseable too.This basically equates to ... hard to code, hard to maintain, and poor performance.
    Are you really sure you want to do this? This isn't going to be easy-street as you seem to think it is, but it's a one way street to a poorly performing system with security vulnerabilities (google SQL Injection).
    I would highly recommend you reconsider your design decision here.

  • Query in SELECT statement!!!!

    Hi all,
              I have a SELECT statement as follows:
      SELECT aguid_hi bpartner_no
      FROM crmd_link AS a
      INNER JOIN crmd_partner AS b ON bguid EQ aguid_set
      INTO TABLE p_partners
      FOR ALL ENTRIES IN i_sub_contracts
      WHERE a~guid_hi     EQ i_sub_contracts-guid
        AND a~objtype_hi  EQ '05'
        AND b~partner_fct EQ p_partner_fct.
    Please tell me if I can create a view for the above.
    Once I create a view for the above will it really boost the performance.
    Kindly reply immediately as this is bit urgent.
    Regards,
    Vijay

    hi,
    As said above view is nothing but an inner join between tables which you are already doing it in your program ... So i don't think there will be any improvement in the performance of the program ...
    Regards,
    Santosh

  • Performance Tuning -To find the execution time for Select Statement

    Hi,
    There is a program that takes 10 hrs to execute. I need tune its performance. The program is basically reading few tables like KNA1,ANLA,ANLU,ADRC etc and updates to Custom table. I did my analysis and found few performance techniques for ABAP coding.
    Now my problem is, to get this object approved I need to submit the execution statistics to client.I checked both ST05 and SE30. I heard of a Tcode where we can execute a select statement and note its time, then modify and find its improved Performance. Can anybody suggest me on this.
    Thanks,
    Rajani.

    Hi,
    This is documentation regarding performance analysis. Hope this will be useful
    It is a general practice to use           Select  *  from <database>…     This statement populates all the values of the structure in the database.
    The effect is many fold:-
    •     It increases the time to retrieve data from database
    •     There is large amount of unused data in memory
    •     It increases the processing time from work area or internal tables
    It is always a good practice to retrieve only the required fields. Always use the syntax      Select f1  f2  …  fn  from <database>…      
    e.g.     Do not use the following statement:-
         Data: i_mara like mara occurs 0 with header line.
         Data: i_marc like marc occurs 0 with header line.
         Select * from mara
              Into table i_mara
              Where matnr in s_matnr.
         Select * from marc
              Into table i_marc
              For all entries in i_mara
              Where matnr eq i_mara-matnr.
         Instead use the following statement:-
                                       Data: begin of i_mara occurs 0,
                                            Matnr like mara-matnr,
                                                  End of i_mara.
         Data: begin of i_marc occurs 0,
              Matnr like marc-matnr,
                                            Werks like marc-werks,
                                                 End of i_marc.
         Select matnr from mara
              Into table i_mara
              Where matnr in s_matnr.

  • Dynamic Query for 'Select IN' -- URGENT!!!

    I've got the following Select statement -
    SELECT Employee_Name, SSN FROM Company
    WHERE EMPLOYEE_NAME IN (c_Employee_Name) ;
    Here c_Employee_Name is a Returned RefCursor from another function. It gives error as Type mismatch.
    Is there anyway I can run one SELECT statement for all the Employee_Name returned by the function?
    Any sample code will be great.
    Thanks a lot,
    Suman

    If you have a packaged function that returns a ref cursor,
    something like this:
    CREATE OR REPLACE PACKAGE package_name
    AS
      TYPE c_employee_name IS  REF cursor;
      FUNCTION function_name
        (p_tables      IN  VARCHAR2,
         p_columns     IN  VARCHAR2 DEFAULT '*',
         p_where       IN  VARCHAR2 DEFAULT ' 1 = 1 ',
         p_others      IN  VARCHAR2 DEFAULT NULL)
        RETURN package_name.c_employee_name;
    END package_name;
    CREATE OR REPLACE PACKAGE BODY package_name
    AS
      FUNCTION function_name
        (p_tables      IN  VARCHAR2,
         p_columns     IN  VARCHAR2 DEFAULT '*',
         p_where       IN  VARCHAR2 DEFAULT ' 1 = 1 ',
         p_others      IN  VARCHAR2 DEFAULT NULL)
        RETURN package_name.c_employee_name
      IS
        v_sql              VARCHAR2 (4000) := NULL;
        v_results          package_name.c_employee_name;
      BEGIN
        v_sql :=
           ' SELECT ' || p_columns
        || ' FROM '   || p_tables
        || ' WHERE '  || p_where || ' '
        || p_others;
        OPEN v_results FOR v_sql;   
        RETURN v_results;
      END function_name;
    END package_name;
    Then, you can use a procedure, something like the
    one below, to call the function and loop through
    the ref cursor to concatenate a string of employee
    names to be used in the select statement.  You can
    then open another ref cursor for that select statment
    and process the results however you like.  I used
    dbms_output in the following example:
    CREATE OR REPLACE PROCEDURE procedure_name
    AS
      c_employee_names  package_name.c_employee_name;
      v_employee_name   company.employee_name%TYPE;
      v_employee_names  VARCHAR2 (4000) := NULL;
      v_delimiter       VARCHAR2 (1) := NULL;
      v_sql             VARCHAR2 (4000) := NULL;
      TYPE cursor_type IS REF CURSOR;
      cursor_name cursor_type;
      v_ssn             company.ssn%TYPE;
    BEGIN
      c_employee_names := package_name.function_name
                            ('company', 'employee_name');
      LOOP
        EXIT WHEN c_employee_names%NOTFOUND;
        FETCH c_employee_names INTO v_employee_name;
        v_employee_names := v_employee_names
        || v_delimiter
        || v_employee_name;
        v_delimiter := ',';
      END LOOP;
      v_employee_names := REPLACE (v_employee_names, ',', ''',''');
      v_sql := ' SELECT employee_name, ssn'
            || ' FROM   company'
            || ' WHERE  employee_name IN ('''
            || v_employee_names
            || ''')';
      OPEN cursor_name FOR v_sql;
      LOOP
        EXIT WHEN cursor_name%NOTFOUND;
        FETCH cursor_name INTO v_employee_name, v_ssn;
        DBMS_OUTPUT.PUT_LINE (v_employee_name || ' ' || v_ssn);
      END LOOP;
      CLOSE cursor_name;
    END procedure_name;
    To execute the procedure that calls the function:
    SET SERVEROUTPUT ON
    EXEC procedure_name

Maybe you are looking for

  • Itunes wont open after being reinstalled

    I uninstalled Bonjour and my itunes told me that I needed to reinstall itunes; So I did but it wont open at all now. I have tried a lot of the methods mentioned on this site to get it working again but it still wont. My Quicktime is up to date as wel

  • Older Mac Pro users beware of Mountain Lion upgrade

    I work at a company where we have 6 edit suites. Five of those suites are still running Mac Pros; three of them are Early 2008 models, two are Early 2009 models. All of these suites have 30" monitors in them running at 2560 x 1600 resolution. The oth

  • DELVRY03 (Change Delivery) - Error with Handling unit

    Hi I'm using idoc DELVRY03 (Inbound) to change the SAP delivery details. But, when i test it i'm landing with error "Field EXIDV empty", "Field VHILM_KU empty" : Status 51. But I think i dont want to use those. Any inputs on how to supress it and hav

  • Url to call Integration engine from Webserver

    Hi All, Please let me know what is the url to call INtegration engine from Webserver I know below is url which we will use to call Adapter engine..But i need direct call to Integration engine http://server:50100/XISOAPAdapter/MessageServlet?channel=:

  • How to use flash media server with cisco show n share live event module?

    hello all Is it  possible to use flash media server in show n share (non dme)live event ?  i 've configured flash media server, can receive  multicast streams, bu i have no idea what to write in video url fild in the live event basic setup.