Table name and number of rows

SELECT 'analyze table '||table_name||' compute statistics for table;'
from user_tables;
SELECT table_name,num_rows
FROM user_tables; Hi I am getting null NUM_ROWS column what could be the reason and how can I fix it?

It works ... for me however.....!!!!
SQL> create table f(b varchar2(10) , g number(2));
Table created
SQL> insert into f values('5',4);
1 row inserted
SQL> insert into f values('e',4);
1 row inserted
SQL> commit;
Commit complete
SQL> select table_name,num_rows from user_tables where table_name='F';
TABLE_NAME                       NUM_ROWS
F                             
SQL>
SQL> begin
  2   for r in ( select table_name from user_tables )
  3   loop
  4   execute immediate 'analyze table '||r.table_name||' compute statistics for table';
  5   end loop;
  6   end;
  7  /
PL/SQL procedure successfully completed
SQL> select table_name,num_rows from user_tables where table_name='F';
TABLE_NAME                       NUM_ROWS
F                                       2
If you repeat the above simple test don't you get the same results.....????
Sim
Message was edited by:
sgalaxy

Similar Messages

  • List Table names and number of rows in it

    Following is a piece of code that would list all tables in a schema and the number of rows in each table.Hope it is helpful for you.
    Note: In this example iam selecting only those tables starting with 'T_'. you may replace it accordingly.
    create or replace procedure count_lines is
    cursor cur is select tname from tab where tname like 'T\_%' escape '\';
    lines number;
    begin
    dbms_output.put_line(rpad('TABLE_NAME',65,' ')||'NUMBER_OF_LINES');
    dbms_output.put_line(rpad('-',80,'-'));
    for i in cur loop
    execute immediate 'select count(*) from '||i.tname into lines;
    dbms_output.put_line(rpad(i.tname,70,' ')||lines);
    end loop;
    end count_lines;
    Following is the sample output:(ignore alignment here)
    TABLE_NAME NUMBER_OF_LINES
    T_FR_ACTION 3
    T_FR_ATTRIBUTE 52
    T_FR_ATTRIBUTE_TYPE 3
    T_FR_ATTRIBUTE_VALUE 5389

    This has been covered many times, so your solution is not the only way...
    http://laurentschneider.com/wordpress/2007/04/how-do-i-store-the-counts-of-all-tables.html
    Re: count rows in shema tables
    And there's many more if you search

  • Table name and count of rows in that table through out the database

    Hi All,
    how to find the table_name and the number of rows in that table for all in a database.
    Bhargava S Akula.

    Hi,
    Something like this
    create function table_count(
       owner       dba_tables.table_name%type
      ,table_name  dba_tables.table_name%type)
       return number
    is
       the_count   number;
       stmt        varchar2(2000);
    begin
       stmt := 'select count(*) from ' || owner || '.' || table_name;
       execute immediate stmt
                    into the_count;
       return the_count;
    exception
       when others
       then
          return 0;
    end table_count;
    select owner, table_name, table_count(owner, table_name)
      from dba_tables
    where 1 = 2; -- remove this  Regards
    Peter

  • Parametrization of Tables Name before retrieveing the Rows.

    Hi all,
    I have more then one tables with same number and types of attributes,
    I want to create a single form to view only as per the parameter table name.
    further more I want the same in Reports. i.e
    Table Name : Test1, Test2.
    Application ask the table name and retrieve thre rows as per parameteized name
    Thanks, if any one could help

    Abdul,
    I don't think that you can change the table for a block in Forms at runtime. You may want to experiment with basing a block on a stored procedure so that the datasource for Forms doesn't change.
    In reports you can use ref cursors to build a query on. In a before Report trigger you can determine the table name by a custom parameter.
    Don't ask for example codes as I don't have some. Refer to teh Forms and Reporst documentation on how to use the techniques mentioned.
    Frank

  • Table name and field name

    hi frds
    Give me table name and field name of OPEN PO QUANTITY ..
    thanks
    Pari Vendhan.R

    See the sample code for the open PO's based on Vendor
    and do accordingly
    *& Report ZMM_PO_REPORT
    REPORT ZMM_PO_REPORT message-Id yb
    NO STANDARD PAGE HEADING
    LINE-COUNT 60(1)
    LINE-SIZE 230.
    D A T A B A S E T A B L E S D E C L A R A T I O N
    TABLES: lfa1, " Vendor Master
    t161, " PO Doc Types
    t024, " Purchase Groups
    ekko. " PO Header
    T Y P E S D E C L A R A T I O N S
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_po,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    bstyp TYPE bstyp, " PO Category
    bukrs TYPE bukrs, " Company Code
    bsart TYPE bbsrt, " PO Type
    lifnr TYPE lifnr, " Vendor No
    ekgrp TYPE bkgrp, " Purchase Group
    waers TYPE waers, " Currency
    bedat TYPE etbdt, " PO Date
    txz01 TYPE txz01, " Material Text
    werks TYPE ewerk, " Plant
    lgort TYPE lgort_d, " Storage Location
    matkl TYPE matkl, " Material Group
    menge TYPE bamng, " PR Quantity
    meins TYPE bamei, " UOM
    bprme TYPE bbprm, " Price Unit
    netpr TYPE netpr, " Net price
    peinh TYPE peinh, " Price Unit UOM
    pstyp TYPE pstyp, " Item Category
    knttp TYPE knttp, " Account Assignment Category
    END OF s_po.
    Purchase Orders History Structure
    TYPES: BEGIN OF s_account,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    gjahr TYPE mjahr, " Fiscal Year
    belnr TYPE mblnr, " PO Invoice No
    menge TYPE menge_d, " PR Quantity
    wrbtr TYPE wrbtr, " Price in Local Currency
    dmbtr TYPE dmbtr, " Price in Foreign Currency
    waers TYPE waers, " Currency
    shkzg TYPE shkzg, " Dr/Cr Indicator
    END OF s_account.
    Purchase Orders History Structure(Item Sum)
    TYPES: BEGIN OF s_inv_sum,
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    menge TYPE menge_d, " PR Quantity
    wrbtr TYPE wrbtr, " Price in Foreign Currency
    waers TYPE waers, " Currency
    END OF s_inv_sum.
    Purchase Orders Main Structure
    TYPES: BEGIN OF s_rep,
    lifnr TYPE lifnr, " Vendor No
    ebeln TYPE ebeln, " PO No.
    ebelp TYPE ebelp, " PO Item
    bstyp TYPE bstyp, " PO Category
    bsart TYPE bbsrt, " PO Type
    ekgrp TYPE bkgrp, " Purchase Group
    waers TYPE waers, " Currency
    bedat TYPE etbdt, " PO Date
    txz01 TYPE txz01, " Material Text
    werks TYPE ewerk, " Plant
    lgort TYPE lgort_d, " Storage Location
    matkl TYPE matkl, " Material Group
    menge TYPE bamng, " PR Quantity
    meins TYPE bamei, " UOM
    bprme TYPE bbprm, " Price Unit
    netpr TYPE netpr, " Net price
    peinh TYPE peinh, " Price Unit UOM
    pstyp TYPE pstyp, " Item Category
    knttp TYPE knttp, " Account Assignment Category
    name1 TYPE name1, " Plant
    orewr TYPE netpr, " To be Invoiced Price
    curr TYPE waers, " Inv Doc Currency
    END OF s_rep.
    D A T A D E C L A R A T I O N S
    DATA: gv_title1 TYPE sylisel, " Report title
    gv_dial. " Color flag
    C O N S T A N T S D E C L A R A T I O N S
    CONSTANTS: c_x VALUE 'X', " Flag X
    c_h VALUE 'H', " Debit
    c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
    I N T E R N A L T A B L E S D E C L A R A T I O N S
    DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
    " Purchase Order
    i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
    " PO Invoice Values
    i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
    " PO Invoice Values
    i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
    " PO Invoice Values
    S E L E C T I O N S C R E E N *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
    s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
    s_bsart FOR t161-bsart,
    s_ekgrp FOR t024-ekgrp,
    s_bedat FOR ekko-bedat.
    SELECTION-SCREEN END OF BLOCK b1.
    I N I T I A L I Z A T I O N *
    INITIALIZATION.
    A T S E L E C T I O N - S C R E E N *
    AT SELECTION-SCREEN.
    Validate the screen fields
    PERFORM validate_screen.
    S T A R T - O F - S E L E C T I O N *
    START-OF-SELECTION.
    Fetch main data
    PERFORM fetch_data.
    T O P - O F - P A G E *
    TOP-OF-PAGE.
    Header of the List
    PERFORM header.
    E N D - O F - P A G E *
    Footer
    END-OF-PAGE.
    ULINE.
    E N D - O F - S E L E C T I O N *
    END-OF-SELECTION.
    Display the Report Output data
    PERFORM display_data.
    At Line-Selection
    AT LINE-SELECTION.
    When double clicked on EBELN display the details of Purchase Doc
    PERFORM line_sel.
    *& Form validate_screen
    Validation of Selection Screen fields
    FORM validate_screen .
    Validation of Vendor Number
    CLEAR lfa1-lifnr.
    IF NOT s_lifnr[] IS INITIAL.
    SELECT lifnr UP TO 1 ROWS
    INTO lfa1-lifnr
    FROM lfa1
    WHERE lifnr IN s_lifnr.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Vendor'(002).
    ENDIF.
    ENDIF.
    Validation of PO Number
    CLEAR ekko-ebeln.
    IF NOT s_ebeln[] IS INITIAL.
    SELECT ebeln UP TO 1 ROWS
    INTO ekko-ebeln
    FROM ekko
    WHERE ebeln IN s_ebeln.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Document Number'(003).
    ENDIF.
    ENDIF.
    Validation of PO Document Type
    CLEAR t161-bsart.
    IF NOT s_bsart[] IS INITIAL.
    SELECT bsart UP TO 1 ROWS
    INTO t161-bsart
    FROM t161
    WHERE bsart IN s_bsart.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
    ENDIF.
    ENDIF.
    Validation of Purchasing Group
    CLEAR t024-ekgrp.
    IF NOT s_ekgrp[] IS INITIAL.
    SELECT ekgrp UP TO 1 ROWS
    INTO t024-ekgrp
    FROM t024
    WHERE ekgrp IN s_ekgrp.
    ENDSELECT.
    IF sy-subrc 0.
    MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
    ENDIF.
    ENDIF.
    ENDFORM. " validate_screen
    *& Form fetch_data
    Fetching the PO related data from Database Tables
    FORM fetch_data .
    CLEAR i_po.
    REFRESH i_po.
    SELECT a~ebeln " PO No.
    b~ebelp " PO Item
    a~bstyp " PO Category
    a~bukrs " Company Code
    a~bsart " PO Type
    a~lifnr " Vendor No
    a~ekgrp " Purchase Group
    a~waers " Currency
    a~bedat " PO Date
    b~txz01 " Material Text
    b~werks " Plant
    b~lgort " Storage Location
    b~matkl " Material Group
    b~menge " PR Quantity
    b~meins " UOM
    b~bprme " Price Unit
    b~netpr " Net price
    b~peinh " Price Unit UOM
    b~pstyp " Item Category
    b~knttp " Account Assignment Category
    INTO TABLE i_po
    FROM ekko AS a JOIN ekpo AS b
    ON a~ebeln = b~ebeln
    WHERE a~ebeln IN s_ebeln AND
    a~lifnr IN s_lifnr AND
    a~ekgrp IN s_ekgrp AND
    a~bsart IN s_bsart AND
    a~bedat IN s_bedat.
    SORT i_po BY ebeln ebelp.
    break-point.
    IF NOT i_po[] IS INITIAL.
    Fetch the PO History/Invoice Details from EKBE Table
    CLEAR i_ekbe.
    REFRESH i_ekbe.
    SELECT ebeln " PO No.
    ebelp " PO Item
    gjahr " Fiscal Year
    belnr " PO Invoice No
    menge " PR Quantity
    wrbtr " Price in Local Currency
    dmbtr " Price in Foreign Currency
    waers " Currency
    shkzg " Dr/Cr Indicator
    INTO TABLE i_ekbe
    FROM ekbe
    FOR ALL ENTRIES IN i_po
    WHERE ebeln = i_po-ebeln AND
    ebelp = i_po-ebelp AND
    vgabe = c_vgabe.
    IF sy-subrc = 0.
    SORT i_ekbe BY ebeln ebelp.
    LOOP AT i_ekbe.
    IF i_ekbe-shkzg = c_h.
    i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
    ENDIF.
    MODIFY i_ekbe.
    ENDLOOP.
    break-point.
    Sum up the Item wise Invoice totals
    LOOP AT i_ekbe.
    AT END OF ebelp.
    READ TABLE i_ekbe INDEX sy-tabix.
    SUM.
    MOVE-CORRESPONDING i_ekbe TO i_inv.
    APPEND i_inv.
    ENDAT.
    CLEAR i_inv.
    ENDLOOP.
    SORT i_inv BY ebeln ebelp.
    break-point.
    ENDIF.
    ENDIF.
    Move the Vendor Name and Invoice Values to I_rep Internal Table
    LOOP AT i_po.
    MOVE-CORRESPONDING i_po TO i_rep.
    CLEAR i_inv.
    READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
    ebelp = i_po-ebelp.
    IF sy-subrc = 0.
    i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
    i_rep-curr = i_inv-waers.
    ELSE.
    i_rep-orewr = i_po-menge * i_po-netpr.
    i_rep-curr = i_po-waers.
    ENDIF.
    break-point.
    Get the Vendor Name
    CLEAR lfa1-name1.
    SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
    WHERE lifnr = i_po-lifnr.
    IF sy-subrc = 0.
    i_rep-name1 = lfa1-name1.
    ENDIF.
    APPEND i_rep.
    CLEAR i_rep.
    break-point.
    ENDLOOP.
    SORT i_rep BY lifnr ebeln ebelp.
    DELETE i_rep WHERE orewr LE 0.
    break-point.
    ENDFORM. " fetch_data
    *& Form display_data
    Display the Report Output data
    FORM display_data .
    DATA: lv_flag, " New Flag
    lv_rec TYPE i. " No of Records
    CLEAR lv_rec.
    IF i_rep[] IS INITIAL.
    MESSAGE e000 WITH 'No Data found'(022).
    ELSE.
    LOOP AT i_rep.
    Toggle Color
    PERFORM toggle_color.
    IF lv_flag space.
    NEW-LINE.
    ENDIF.
    At New Purchase Document
    AT NEW ebeln.
    WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
    lv_flag = c_x.
    lv_rec = lv_rec + 1.
    ENDAT.
    WRITE: 1 sy-vline,
    12 sy-vline,13(4) i_rep-bsart,
    17 sy-vline,18(10) i_rep-lifnr,
    28 sy-vline,29(35) i_rep-name1,
    64 sy-vline,65(4) i_rep-ekgrp,
    69 sy-vline,70(10) i_rep-bedat,
    80 sy-vline,81(5) i_rep-ebelp,
    86 sy-vline,87(40) i_rep-txz01,
    127 sy-vline,128(9) i_rep-matkl,
    137 sy-vline,138(1) i_rep-pstyp,
    139 sy-vline,140(1) i_rep-knttp,
    141 sy-vline,142(4) i_rep-werks,
    146 sy-vline,147(4) i_rep-lgort,
    151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
    165 sy-vline,166(3) i_rep-meins,
    169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
    185 sy-vline,186(4) i_rep-waers,
    190 sy-vline,191(5) i_rep-peinh,
    196 sy-vline,197(4) i_rep-bprme,
    201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
    217 sy-vline,218(4) i_rep-curr,
    222 sy-vline,223(7) i_rep-bstyp centered,
    230 sy-vline.
    NEW-LINE.
    hide: i_rep-ebeln.
    ENDLOOP.
    ULINE.
    FORMAT COLOR OFF.
    WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
    lv_rec COLOR 3.
    ENDIF.
    ENDFORM. " display_data
    *& Form header
    Write the Report Header
    FORM header .
    FORMAT RESET.
    header
    WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
    SKIP.
    FORMAT COLOR COL_HEADING.
    ULINE.
    WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
    12 sy-vline,13(4) 'Type'(007),
    17 sy-vline,18(10) 'Vendor'(008) CENTERED,
    28 sy-vline,29(35) 'Name'(009) CENTERED,
    64 sy-vline,65(4) 'PGrp'(010) CENTERED,
    69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
    80 sy-vline,81(5) 'Item'(011),
    86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
    127 sy-vline,128(9) 'Mat.Group'(013),
    137 sy-vline,138(1) 'I',
    139 sy-vline,140(1) 'A',
    141 sy-vline,142(4) 'Plnt'(014),
    146 sy-vline,147(4) 'SLoc'(015),
    151 sy-vline,152(13) 'Quantity'(016) CENTERED,
    165 sy-vline,166(3) 'UoM'(017),
    169 sy-vline,170(15) 'Net Value'(018) CENTERED,
    185 sy-vline,186(4) 'Curr'(019),
    190 sy-vline,191(5) 'Per'(020),
    196 sy-vline,197(4) 'Unit'(021),
    201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
    217 sy-vline,218(4) 'Curr'(019),
    222 sy-vline,223(7) 'Doc.Cat'(026),
    230 sy-vline.
    ULINE.
    ENDFORM. " header
    *& Form toggle_color
    This routine alters the color of the records in the list FORM toggle_color.
    IF gv_dial = space.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    gv_dial = c_x.
    ELSE.
    FORMAT COLOR 1 INTENSIFIED OFF.
    CLEAR gv_dial.
    ENDIF.
    ENDFORM. " toggle_color
    *& Form LINE_SEL
    *When double clicked on EBELN field display the details of Purchase Doc
    FORM line_sel.
    CASE sy-lsind.
    WHEN '1'.
    DATA: lv_field(20),
    lv_value(10),
    lv_bstyp like i_rep-bstyp.
    clear: lv_bstyp,lv_value, lv_field.
    GET CURSOR FIELD lv_field VALUE lv_value.
    IF lv_field = 'I_REP-EBELN'.
    IF NOT lv_value IS INITIAL.
    READ LINE sy-index FIELD VALUE i_rep-bstyp
    INTO lv_bstyp.
    READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
    if lv_bstyp = 'F'.
    SET PARAMETER ID 'BES' FIELD lv_value.
    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
    SET PARAMETER ID 'VRT' FIELD lv_value.
    CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
    elseif lv_bstyp = 'A'.
    SET PARAMETER ID 'ANF' FIELD lv_value.
    CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
    endif.
    ENDIF.
    ENDIF.
    ENDCASE.
    ENDFORM. " line_sel{code]
    <REMOVED BY MODERATOR>
    kushagra
    Edited by: Alvaro Tejada Galindo on Feb 18, 2008 2:03 PM

  • Function and number of rows

    Hi ..is it possible to write a function that will take a table name and a where clause as parameters and return the number of rows in the table that satisfy the where clause...?
    thanks
    W

    SQL> select * from emp;
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          7566 JONES      MANAGER         7839 02-APR-81       2975       1000         20
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
          7839 KING       PRESIDENT            17-NOV-81       5000                    10
          7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
          7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
          7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
          7788 SCOTT      ANALYST         7566 09-DEC-82       3000                    20
          7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
          7876 ADAMS      CLERK           7788 12-JAN-83       1100                    20
          7900 JAMES      CLERK           7698 03-DEC-81        950                    30
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
    14 rows selected.
    SQL> create or replace function fnc_demo (pTable varchar2,
      2                                       pWhere varchar2)
      3    return sys_refcursor as
      4    c sys_refcursor;
      5  begin
      6    open c for 'select * from '||pTable||' '||pWhere;
      7    return c;
      8  end;
      9  /
    Function created.
    SQL> var c refcursor
    SQL> exec :c := fnc_demo('emp','where deptno = 10');
    PL/SQL procedure successfully completed.
    SQL> print c
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          7839 KING       PRESIDENT            17-NOV-81       5000                    10
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
    SQL>

  • Field symbols as Table name and in where condition in a select statement

    Hello All,
    I have a scenario where I need to get user input on table name and old field value and new field value. Then based on user input, I need to select the record from the database. The column name for all the tables in question is different in the database, however there data type is the same and have same values.
    I am not able to use a field symbol for comparing the old field value to fetch the relevant record in my where clause.
    I cannnot loop through the entire table as it has 10 millilon records, please advice on how to add the where clause as field symbol as the table name is also dynamically assigned.
    Here is my code:
    DATA: TAB       LIKE SY-TNAME,
          TAB_COMP1 LIKE X031L-FIELDNAME,
          TAB_COMP2 LIKE X031L-FIELDNAME,
          NO_OF_FLD TYPE N.
    DATA: BEGIN OF BUFFER,
            ALIGNMENT TYPE F,
            C(8000)   TYPE C,
          END OF BUFFER.
    FIELD-SYMBOLS: <WA>   TYPE ANY,
                  <COMP1> TYPE ANY,
                  <COMP2> TYPE ANY.
    GET TABLE NAME GIVEN BY USER IN LOCAL VARIABLE
      TAB = TAB_NAME.
    CREATE FIELD NAME BASED ON THE TABLE NAME ENTERED.
      CASE TAB_NAME.
      WHEN 'OIUH_RV_GL'.
          KEY FIELD
            TAB_COMP1  = 'GL_GL_SYS_NO'.
            NO_OF_FLD  = 1.
      WHEN 'OIUH_RV_OPSL'.
          KEY FIELD
            TAB_COMP1  = 'OPSL_GL_SYS_NO'.
            NO_OF_FLD  = 1.
      WHEN 'OIUH_RV_OTAX'.
          NOT THE ONLY KEY FIELD
            TAB_COMP1  = 'OTAX_GL_SYS_NO'.
            TAB_COMP2  = 'OTAX_TAX_POS_NO'.
            NO_OF_FLD  = 2.
      WHEN 'OIUH_RV_GTAX'.
          NOT THE ONLY KEY FIELD
            TAB_COMP1  = 'GTAX_GL_SYS_NO'.
            TAB_COMP2  = 'GTAX_TAX_POS_NO'.
            NO_OF_FLD  = 2.
      WHEN OTHERS.
            EXIT.
      ENDCASE.
    SET FIELD SYMBOL WITH APPROPRIATE TYPE TO BUFFER AREA.
    ASSIGN BUFFER TO <WA> CASTING TYPE (TAB).
    How to add where clause and remove the if condition in the select -- endselect
    SELECT * FROM (TAB) INTO <WA>. 
      ASSIGN COMPONENT TAB_COMP1 OF STRUCTURE <WA> TO <COMP1>.
      IF NO_OF_FLD = 2.
        ASSIGN COMPONENT TAB_COMP2 OF STRUCTURE <WA> TO <COMP2>.
      ENDIF.
      IF <COMP1> = OLD_SYS_NO.
        code for updating table would come here
          WRITE: 'MATCH FOUND'.
          EXIT.
      ENDIF.
    ENDSELECT.
    Please advice. Thanks much.
    Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:33 PM
    Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:34 PM
    Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:35 PM

    1. Create single column table for holding field name depending on the table entered.
    2. Take input from user: for e.g. table_name
    3. Using case load single column table with required fields
       for e.g.
      CASE TAB_NAME.
       WHEN 'OIUH_RV_GL'.
             Append 'GL_GL_SYS_NO' to KEY_FIELD --> KEY_FIELD is the single line internal table as mentioned in step 1.
       WHEN 'OIUH_RV_OPSL'.
             Append 'OPSL_GL_SYS_NO'.
       WHEN 'OIUH_RV_OTAX'.
             Append 'OTAX_GL_SYS_NO' to KEY_FIELD.
               APPEND 'OTAX_TAX_POS_NO' to KEY_FIELD.
       WHEN 'OIUH_RV_GTAX'.
             Append 'GTAX_GL_SYS_NO' to KEY_FIELD.
               APPEND 'OTAX_TAX_POS_NO' to KEY_FIELD.
       WHEN OTHERS.
          EXIT.
       ENDCASE.
       Now depending on the table name you have required column ready
    4. Create dynamic internal table using following sudo code
       Fill the fieldcatlog using the single column field table and DD03L table, See what all columns from DD03L you want to fill in field catlog table
       loop at internal table with all the fields.
        move it to field catalog.
        append field catalog.
       endloop.
    5. Pass this field catalog table to static method create_dynamic_table method
       DATA table TYPE REF TO DATA. --> data object for holding handle to dynamic internal table.
       call method cl_alv_table_create=>create_dynamic_table
       exporting
          it_fieldcatalog = fieldcatalog_tab
       importing
          ep_table = table.
    6. Now assign table reference to field symbol of type table.
       ASSIGN table->* to <field-tab>.
    7. Also create work area <field-wa> using refrence of table.
       create data object wa LIKE LINE OF <field-tab>.
       ASSIGN wa->* to <field-wa>.
    8. Also define field symbol for field name.
       for e.g. <field_name>
    4. Dynamic internal table is ready
    5. Now execute the select statement as follows:
       SELECT (KEY_FIELD)
         INTO <ITAB> --> created dynamically above
          FROM (TABLE_NAME)
         WHERE (WHERE).  --> WHERE is single line internal table having line type of CHAR72. So for every old value there will be one line
         Where condition is same as like we give in static way only difference in this case it will stored in internal table line wise.
        In this case you need to append all your where condition line by line in to WHERE.     
    5. To fill this dynamic internal table using ASSIGN COMPONENT <Comp_number> OF STRUCTURE <field-wa> TO <field-name>
       So in this case if first field of structure STRUCT1 is user_id then sudo-code will be
       loop at internal table containing list of fields into field_wa --> single column field table
           ASSIGN COMPONENT field_wa OF STRUCTURE <field-wa> TO <field>. "Here field_wa is wa area for single column internal table holding all the fieldnames.
           Now <field-name> points to user_id field. Move some value into it as nornally we do with variables.
           Move <your_new_value> to <field-name>. --> Assign new value
            or
            <field-name> = <your_new_value>.
       Endloop.
    6. After completing all the fields one row will be ready in <field_wa>.
       APPEND <field_wa> to <field_tab>.
    Hope this helps you.
    Thanks,
    Augustin.

  • Table names and field names for the PO item details

    Hi,
    I want table names and field name for the below fields.
    I have PO number i want to get below fields for PO.
    <b>Confirmed Ship Date (or actual ship date if already shipped) – PGI Date
    Quantity of Product to be shipped (base unit of measure) Sales Order Qty
    Shipped Quantity of Product (normally zero)
    Shipped From Plant Name</b>
    Excellent reward is compulsary.
    reagrds,
    vijay

    Hi,
    Please find below the some of tables and fields for the PO. But from your query hope you are refering some other PO.
    Table : EKPO
    Fields
    KTMNG - Target Qty
    MENGE - Open Qty
    WEPOS - Goods Receipt
    LEWED - Latest GR date
    Table : EORD
    Fields
    RESWK - Procurement plant
    FRESW - Fixed Issuing plant
    LIFNR - Vendor
    FLIFN - Fixed vendor
    Regards,
    BK

  • Get Target table name and its count

    Hi Experts,
    I have created a Procedure where I want to get the Target table name and its count of the previous Interface in a Package and insert these values into the Audit table.
    I am able to get the number of Inserts in previous step using getPrevStepLog() API, but I also want the Target table name and its total count of the previous Interface. Is there any generic way or code to bring these Information without hardcoding the table name. Kindly help to sort this issue.Thanks!
    Warm Regards,
    VBV

    Hi VBV,
    Please follow the below steps to audit ur execution.
    Please note i coded in such a way that u can use ur existing procedure to capture the table name no need to query ur repository as its not advisable to query the repository as Oracle may change the structure in future which i personally feel right.
    I created a Audit table with the below structure.
    CREATE TABLE AUDIT_TABLE
    INSERT_COUNT VARCHAR2(100 BYTE),
    TABLE_NAME VARCHAR2(4000 BYTE)
    Step 1 :
    This step needs to be added in ur existing IKM after Commit step where i am using API to capture the target table name.
    Step Name: Get Table Name
    Command On Source
    Technology: Oracle
    Schema: Any Oracle related Schema
    Command:
    SELECT '<%=odiRef.getTargetTable("RES_NAME")%>' AS TGT_NAME FROM DUAL
    Command On Target
    Technology: Jython
    Command:
    TargetTable='#TGT_NAME'
    Step 2:
    In ur existing procedure add the below or add a new procedure.
    Step Name: Audit Log
    Command on Source
    Technology : Oracle
    Schema: Whichever schema holds the audit table
    Command on Target
    Technology : Jython
    Command:
    import java.sql as sql
    import java.lang as lang
    myCon =odiRef.getJDBCConnection("SRC")
    MyStmt=myCon.createStatement()
    myRs = MyStmt.executeQuery("INSERT INTO ODITGT.AUDIT_TABLE (INSERT_COUNT,TABLE_NAME) VALUES (<%=odiRef.getPrevStepLog("INSERT_COUNT")%>,'"+TargetTable+"')")
    Thats it.
    OTN doesnt allow me to put + sign in front of any word ( its assume its a Italic) so please add + (plus) sign before and after TargetTable in the above script.
    This way u can capture the table name, insert count in to ur audit table.
    Please note u need to call this Procedure after the successful completion of the interface in a package and make sure u selected the right IKM which capture the table name as in Step 1.
    I tested in my local and its working fine. Let me know if u find any difficulties in implementation.
    Thanks,
    Guru

  • Passing table name and columns name as parameters to procedure

    i need a procedure that take table name and column names as parameters .
    it should display all values in those columns
    like
    if i execute procedure p ( t1,c1,c2)
    it should display c1,c2 values in t1 table
    if i execute procedure p ( t1, c1,c2,c3)
    it should display c1,c2,c3 values in t1 tables
    no of column parameters changes

    See if this helps...
    First, read the manual on collections.
    Second, define your expected results. You want to output the results to the screen? You cannot perform a 'select' in PL/SQL. You will have to select your output into another collection, then loop through that.
    Finally, I am curious why this is necessary versus performing a regular query.
    Take a look at this incomplete code.
    create or replace
    package dave_pac
    IS
    TYPE col_name_list IS VARRAY(20) OF VARCHAR2(30);
    PROCEDURE SFA_TAB_COL1
    (p_tname  IN    VARCHAR2
    ,p_cnames IN    col_name_list);
    END;
    create or replace
    package  body dave_pac
    IS
    PROCEDURE SFA_TAB_COL1
    (P_tname  IN varchar2
    ,p_cnames in col_name_list)
    IS
    l_stmt long;
    l_rc number;
    begin
    l_stmt :='select '||p_cnames(1);
    for i in 2..p_cnames.count
    loop
    l_stmt :=l_stmt||' , '||p_cnames(i);
    end loop;
    l_stmt:= l_stmt||' from '|| p_tname ;
    execute immediate l_stmt;
    end ;
    END dave_pac;

  • How to find table name and field name thru Tcode

    Hi,
         how to find out table name and field names thru transaction code..........plz point out step by step.

    Hi
    I am not getting your question... as i understand, if you go to SE84 tcode you can get it.
    Go to SE84.Select ABAP Dictionary sub tree. Double click on "database tables'. Give some number in "Maximum number of hits”. DONT GIVE ANY OTHER INPUTS. Just press F8. You will get all table names.
    For fields also do like this by selecting FIELDS sub tree.
    Reward if it is useful.
    Thanks
    Siva Kumar

  • Adding caller with name and number from call list to the contact list only inserts the number and not the name

    I recently bought a BlackBerry Z10 and moved my cell service to Rogers to take advantage of the name display service offered by Rogers (Fido also offers this service).
    Due to the number of calls that I receive from first time clients, I wanted the name display service to help me know who was calling. Evidently it is impossible to add clients to my contact list before they call me so I'm constantly seeing numbers that have no name to help me decide if I want to answer the call.
    When I try to add a caller from my call list to my contact list, only the number gets inserted in the new contact. The name needs to be entered manually.
    I understand and realize that not all call display formats are the same and that it's virtually impossible to parse the first and last names from the name portion of the caller id.
    However, I would like to see BlackBerry add the functionality to insert the name portion of the call entry from the caller list to a "Nickname" entry in the contact list just like it adds the number to a "Home", "Mobile", or "Work" entry in the contact list.
    If a user doesn't have a name display service, there would be no change to how their contacts are added because there is no name variable to copy over.
    Can someone from BlackBerry please let me know if this feature can be added to BB10 and when it can be added? For me it's an obvious feature that should just work.
    I am really enjoying my Z10 but I'm feeling let down that something so logical and helpful is not supported out of the box.
    Regards,
    Marc

    Hey ViciousFerret,
    It appears that you are not aware of the fact that both Rogers and Fido offer name AND number display service (although the name display feature is an add-on service) and have been offering it for many years (since 2006). Here is a link to the name display service description of each provider...
    http://www.fido.ca/web/content/manageyourcalls/calldisplay&lang=en
    http://www.rogers.com/business/on/en/smallbusiness/products/wireless/addons/valuepacks/
    As you can see from the link below, Rogers and Fido have been offering this service since 2006.
    http://www.businesswire.com/news/home/20060914005951/en/Teams-HP-Rogers-Wireless-Fido-Succeed-North
    My BlackBerry Z10 shows both the name and number when someone calls (and the caller is not in my contact list).
    All I would like is for the Z10 (and Q10) to support the addition of the name and number from the caller list to my contact list without me having to type the name. As I mentioned in my original post, to avoid the OS having to parse the first name and last name from the name portion of the caller list entry the name could simply be added to the contact list as a "Nickname". If your provider only has number display, nothing would have to be copied from the name variable in the caller list to the contact list.
    I find it difficult to believe that BlackBerry would not be aware of this name display service since it's been around since 2006 with both Rogers and Fido.
    I hope I have clarified the reasons why I would like to have this feature added to BB10 and how it's surprising that this simple feature is not already a part of the BB10 OS.
    Either way, I don't think this is a difficult feature for the BlackBerry team to add. They're just copying a 2nd variable from the caller list to the contact list.
    I'm surprised that Rogers hasn't asked BlackBerry to add this feature to their phones. I think it would be a popular feature for those who receive a high number of calls from first time callers.
    How can I get this feature request to BlackBerry for their consideration?
    Cheers,
    Marc

  • Table name and field name for accounting and material document in MM

    Hi
    Table name and field name for accounting and material document in MM
    how can we diffreentiate the accounting document in MIGO and MIRO ?

    Hi,
    For Goods reciept documents you can search from the tables  MKPF-Header: Material Document and MSEG-Document Segment: Material,
    and for Invoice documents you can search in  tables   BKPF-Accounting Document Header and BSEG-Accounting Document Segment.
    For differentiating the Accounting documents in MIRO and MIGO based on posting key and document types for GRN -document key is -WE and for MIRO document is -RE.......
    Hope this may help you.....................

  • Query to find out the table name and column name..

    Hi Experts,
    I have an Oracle DB in which has more than 50 tables and 100,000 records. I want to get the record which contains *"ITxtVarValue references a non existing text"* the text.
    Is there any query there to find out the table name and column name of this particular record where it reside?
    Please help. Any help will be rewarded.
    Thanks,
    G

    Using this forum's search function, I found a thread that should give you an idea: How to find out a tablename
    C.

  • Table names and column names defined by other languages, not English.

    Hi, everyone.
    I am wondering if there are any possible problems or any inconvenience
    when I define table names and column names by Japanese, not English.
    Currently, we are using SQL server 2000 as a db and windows as a operating
    system. In the near future, we have the plan to change the database software
    and operating system to "Oracle 10g" and "Linux O/S".
    I have not experienced the oracle database, which has table names and column
    names defined by other languages, not English.
    Personally, I would like to use English as table names and column names.
    In this case, I might have to provide appropriate reasons.
    Are there any possible problems or any "inconvenience" in terms of
    system maintenance, development, or something else ?
    What could be pros and cons in this case?
    Thanks in advance.
    Have a nice day.
    Best Regards.
    Ho.

    First you need to make sure your database has character set that support Japanese.
    Choosing a Character Set
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#i1007681
    The main "inconvenience" you will have is if the client doesn't support Japanese or unicode, it will have trouble to access the table.
    And say in future after the application been developed, you want to implement the schema in some English environment, you will have hard time to do it.
    My point is English tablename and column names doesn't prevent you use it in Japanese environment and save Japanese data but not vice-versa. Hope you understand.

Maybe you are looking for

  • Mail 7.2 unresponsive after upgrade to OS 10.9.2

    Two days ago I upgraded Mavericks to OS 10.9.2: since then Mail's behaviour has been increasingly erratic and the app is now unusable. Nothing in the viewer window responds to clicks, so I am unable to select accounts or open individual emails. The m

  • Droid Razr M Red Eye Boot Loop--continues for TOO many customers, need help!

    Droid Razr M problem with red eye boot loop--with ALL of the many posts that can be found online concerning this problem, why is there not a FIX from Motorola and/or Verizon?  All I seem to get are suggestions (I've tried) and "device is now consider

  • Report on Change Logs

    Hi Guys Is there a report/transaction in SAP where I can view all the changes that have occurred on the Customre/Vendor master data... other than the XD04/XK04.. Thank you Rukshana

  • Custom Form Entry and how to properly use it on a folder

    Hello, I created a custom form based on an example from coolsolution, and I want to use it in one folder. I does select it within folder configuration. The problem is that when i create an entry, my form appears, but when I click on OK, it's the old

  • To open Front Row, why do you have to hit the menu button twice?

    I notice that when I first restart my computer and want to access front row via the apple remote, I have to hit the menu button twice to activate it. Does anybody know why this is?