Create data base table with EXEC SQL

Hello,
I nead to create o data base table with EXEC SQL in an Abap program.
My code is :
TRY.
   EXEC SQL.
      CREATE table zt_hello ( mandt char(4) NOT NULL,
                              kunnr char(10) NOT NULL,
                              PRIMARY KEY (mandt, kunnr) )
    ENDEXEC.
  CATCH cx_sy_native_sql_error INTO exc_ref.
    error_text = exc_ref->get_text( ).
ENDTRY.
IF sy-subrc = 0.
  COMMIT WORK.
ENDIF.
But it still not working.
Can you help me please.
Thanks.
Edited by: widad soubhi on Jul 14, 2010 5:26 PM

Please refer this code
REPORT z_struct_create .
DATA: my_row(500) TYPE c,
my_file_1 LIKE my_row OCCURS 0 WITH HEADER LINE.
DATA: dd02v TYPE dd02v.
DATA: my_file_tab1 LIKE dd03p OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text
NO INTERVALS.
PARAMETERS:
name TYPE ddobjname,
testo TYPE text40,
file_1 LIKE rlgrap-filename.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR file_1.
PERFORM file_selection USING file_1.
INITIALIZATION.
text = text-001.
START-OF-SELECTION.
IF file_1 IS INITIAL.
MESSAGE ID 'Z0017_BDI' TYPE 'I' NUMBER 001.
EXIT.
ENDIF.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = file_1
filetype = 'ASC'
TABLES
data_tab = my_file_1.
IF sy-subrc 0.
MESSAGE ID 'Z0017_BDI' TYPE 'I' NUMBER 002.
EXIT.
ENDIF.
LOOP AT my_file_1.
IF sy-tabix > 1.
CLEAR my_file_tab1.
SPLIT my_file_1 AT ';' INTO
my_file_tab1-fieldname
my_file_tab1-datatype
my_file_tab1-leng
my_file_tab1-decimals
my_file_tab1-ddtext
my_file_tab1-inttype = 'C'.
my_file_tab1-INTLEN = my_file_tab1-leng.
my_file_tab1-tabname = name.
my_file_tab1-position = sy-tabix - 1.
my_file_tab1-ddlanguage = sy-langu.
my_file_tab1-OUTPUTLEN = my_file_tab1-leng.
APPEND my_file_tab1.
ENDIF.
ENDLOOP.
dd02v-tabname = name.
dd02v-ddlanguage = sy-langu.
dd02v-tabclass = 'INTTAB'.
dd02v-DDTEXT = testo.
dd02v-MASTERLANG = sy-langu.
IF NOT my_file_tab1[] IS INITIAL.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
name = name
dd02v_wa = dd02v
TABLES
dd03p_tab = my_file_tab1
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSE.
MESSAGE ID 'Z0017_BDI' TYPE 'I' NUMBER 003.
EXIT.
ENDIF.
*& Form file_selection
-->P_FILE_1 text
FORM file_selection USING p_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ''
def_path = 'c:\'
mask = ',.,..'
mode = '0'
title = 'Selezione file'
IMPORTING
filename = p_file
RC = RCODE
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " file_selection
File Template:
Fieldname;Data Type;Lentgh;Dec.;Descr.
FIELD1;CHAR;000020;000000;my field 1
FIELD2;CHAR;000008;000000;my field 2
FIELD3;CHAR;000007;000000;my field 3
FIELD4;CHAR;000006;000000;my field 4

Similar Messages

  • How to update the data base table with data

    i have two ztables, one is zfm_kfz and other one is zfm_kmvrg
    zfm_kfz is maintained by using table maintenance generator as well as alv grid control for list display.
    zfm_kfz the field r like this KFZR, GERAET, KOSTENTRAEGER, BEZEICHNUNG, TUVDATUMMMYYYY, ASUDATUMMMYYYY, KMSTAND, HISTO AND REIFEN.
    PROBLEM: all the data in grid control r updated except KMSTAND
    fields in zfm_kmvrg are kostentraeger, kfznr and kmstand i m creating table control for this screen here what ever enter the last km stand is updated in the list.for one kfznr many kostentraegers and kmstand, the last km stand is updated here , go through this code plz hepl me
    CONTROLS tabctrl TYPE TABLEVIEW USING SCREEN 100.
    DATA: cols LIKE LINE OF tabctrl-cols,
          lines TYPE i.
    DATA: ok_code TYPE sy-ucomm,
          save_ok TYPE sy-ucomm.
    DATA: itab TYPE TABLE OF zfm_kmvrg,
          fs_itab LIKE LINE OF itab,
          fl_change TYPE c,
          fl_error  TYPE c.
    *TABLES fs_itab.
    LOOP AT tabctrl-cols INTO cols.
      cols-screen-input = '0'.
      MODIFY tabctrl-cols FROM cols INDEX sy-tabix.
    ENDLOOP.
    *SELECT * FROM spfli INTO TABLE itab.
    CALL SCREEN 100.
    MODULE status_0100 OUTPUT
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_101'.
      DESCRIBE TABLE itab LINES lines.
      tabctrl-lines = lines.
    ENDMODULE.                    "status_0100 OUTPUT
    MODULE cancel INPUT
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.                    "cancel INPUT
    MODULE read_table_control INPUT
    MODULE read_table_control INPUT.
      MODIFY itab FROM fs_itab INDEX tabctrl-current_line.
    ENDMODULE.                    "read_table_control INPUT
    MODULE user_command_0100 INPUT
    MODULE user_command_0100 INPUT.
      DATA:
        lw_index TYPE i.
      save_ok = ok_code.
      CLEAR ok_code.
      CASE save_ok.
        WHEN 'ADD'.
          LOOP AT tabctrl-cols INTO cols.
            cols-screen-input = '1'.
            MODIFY tabctrl-cols FROM cols INDEX sy-tabix.
          ENDLOOP.
          CLEAR fs_itab.
          APPEND fs_itab TO itab.
        WHEN 'SAVE'.
          IF NOT itab[] IS INITIAL.
            LOOP AT itab[] into FS_ITAB.
              lw_index = sy-tabix.
              IF NOT fs_itab IS INITIAL.
                MODIFY ZFM_KMVRG FROM fs_itab.
                IF sy-subrc EQ 0.
                  UPDATE ZFM_KFZ set kmstand = fs_itab-kmstand
                                        WHERE kfznr = fs_itab-kfznr.
                ELSE.
                  fl_error = 'X'.
                  WRITE:/ 'The record number', lw_index,
                          'has not been updated'.
                ENDIF.
              ENDIF.
            ENDLOOP.
          ELSE.
            MESSAGE s000(0) WITH 'No data is present to update'.
          ENDIF.
      ENDCASE.
      IF fl_error = 'X'.
        LEAVE TO LIST-PROCESSING.
      ELSE.
        MESSAGE s000(0) WITH
              'All the records have been updated successfully'.
      ENDIF.
    ENDMODULE.                    "user_command_0100 INPUT
    IN SE51
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      LOOP AT ITAB INTO fs_itab WITH CONTROL tabctrl.
      ENDLOOP.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      LOOP AT ITAB.
        module read_table_control.
      ENDLOOP.
      module user_command_0100.
    i m trying many times i m not getting proper output, plz help me on this

    Hi,
    I am hereby givng the similar sample code.Check this with your requirement.
    In the flow logic of the screen 9000, write the following code.
    PROCESS BEFORE OUTPUT.
      MODULE set_status.
      MODULE get_t_ctrl_lines.
      LOOP AT i_makt WITH CONTROL t_ctrl CURSOR t_ctrl-current_line.
    * Dynamic screen modifications
        MODULE set_screen_fields.
      ENDLOOP.
    PROCESS AFTER INPUT.
      LOOP AT i_makt.
        FIELD i_makt-pick MODULE check.
        FIELD i_makt-zmatnr MODULE zmatnr .
      ENDLOOP.
      MODULE user_command_9000.
    In the program, write the following code.
    PROGRAM SAPMZTC MESSAGE-ID zz.
    * Tables Declaration
    TABLES: zzz_makt.
    * Internal table Declaration
    DATA : i_makt TYPE STANDARD TABLE OF zzz_makt WITH HEADER LINE.
    * Table control Declaration
    CONTROLS: t_ctrl TYPE TABLEVIEW USING SCREEN '9000'.
    * Variable Declaration
    DATA : flg,           "Flag to set the change mode
           ln TYPE i.     "No. of records
    *&      Module  get_T_CTRL_lines  OUTPUT
    *  Populating data
    MODULE get_t_ctrl_lines OUTPUT.
      SELECT zmatnr zmaktx
             INTO CORRESPONDING FIELDS OF TABLE i_makt
             FROM zzz_makt.
      DESCRIBE TABLE i_makt LINES ln.
    * To make the vertical scroll bar to come on runtime
      t_ctrl-lines = ln + 100.
    ENDMODULE.                 " get_T_CTRL_lines  OUTPUT
    *&      Module  USER_COMMAND_9000  INPUT
    * Triggering event according to the user command
    MODULE user_command_9000 INPUT.
      DATA :lv_fcode LIKE sy-ucomm,    "Function Code
            lv_answer(1) type c.       "Storing the answer
      lv_fcode = sy-ucomm.
      CASE lv_fcode.
        WHEN 'CHANGE'.
    * Setting the flag to make the table control in editable mode[excluding
    * primary key].
          flg = 'Y'.
        WHEN 'DELETE'.
    * Setting the flag to make the table control in editable mode after
    * deleting the selected line
          flg = 'Y'.
    * Confirmation of delete
          CALL FUNCTION 'POPUP_TO_CONFIRM'
            EXPORTING
             TITLEBAR       = 'Confirm'
             text_question  = 'Are you sure to delete from database?'
             TEXT_BUTTON_1  = 'Yes'(001)
             TEXT_BUTTON_2  = 'No'(002)
            IMPORTING
             ANSWER         =  lv_answer.
          if lv_answer eq '1'.
    * Updating the database table from the internal table
            UPDATE zzz_makt FROM TABLE i_makt.
    * Deleting the selected row from the internal table
            DELETE i_makt WHERE pick = 'X'.
    * Deleting the selected row from the database table
            DELETE FROM zzz_makt WHERE pick = 'X'.
            MESSAGE s005 WITH 'Deleted Successfully'.
          ENDIF.
        WHEN 'SAVE'.
    * Inserting new record or updating existing record in database table
    * from the internal table
          MODIFY zzz_makt FROM TABLE i_makt.
          MESSAGE s005 WITH 'Saved Successfully'.
        WHEN 'BACK'.
          SET SCREEN '0'.
        WHEN 'EXIT' OR 'CANCEL'.
    * Leaving the program
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
    *&      Module  set_screen_fields  OUTPUT
    * Setting the screen fields
    MODULE set_screen_fields OUTPUT.
      LOOP AT SCREEN.
        IF flg IS INITIAL.
          screen-input = 0.
        ELSEIF ( flg EQ 'Y' ).
          IF ( ( screen-name = 'I_MAKT-ZMAKTX'
                 OR screen-name = 'I_MAKT-CHECK1' )
                AND t_ctrl-current_line LE ln ) .
    * Making the screen fields as editable
            screen-input = 1.
          ELSEIF ( ( screen-name = 'I_MAKT-ZMATNR' )
                     AND t_ctrl-current_line LE ln ).
    * Making the screen field as uneditable
            screen-input = 0.
          ENDIF.
        ENDIF.
    * Modifying the screen after making changes
        MODIFY SCREEN.
      ENDLOOP.
    ENDMODULE.                 " set_screen_fields  OUTPUT
    *&      Module  zmatnr  INPUT
    * Appending records to the internal table
    MODULE zmatnr INPUT.
      MODIFY i_makt INDEX t_ctrl-current_line.
      IF t_ctrl-current_line GT ln.
        READ TABLE i_makt WITH KEY zmatnr = i_makt-zmatnr.
        IF sy-subrc NE 0.
    * Inserting record if it does not exist in database
          APPEND i_makt.
        ELSE.
         MESSAGE i005 WITH 'Material Number' i_makt-zmatnr 'already exists'.
        ENDIF.
      ENDIF.
    ENDMODULE.                 " zmatnr  INPUT
    *&      Module  set_status  OUTPUT
    * Setting the GUI status
    MODULE set_status OUTPUT.
      SET PF-STATUS 'ZSTATUS'.
      SET TITLEBAR  'ZTITLE'.
    ENDMODULE.                 " set_status  OUTPUT
    *&      Module  CHECK  INPUT
    * Modify the internal table using the current line in table control
    MODULE check INPUT.
      MODIFY i_makt INDEX t_ctrl-current_line.
    ENDMODULE.                 " CHECK  INPUT

  • How do you create data base documents in Pages '09?

    Can you create Data Base documents with Pages, or any of the iWork Apps?

    If you want to create and use true databases, you must use an other app dedicated to this feature.
    There is a powerful database tool in LibreOffice but it requires a serious learn curve.
    There are numerous available apps starting from Bentoy to FileMaker or 4th Dimension.
    Matter of needs and finances.
    Yvan KOENIG (VALLAURIS, France)  dimanche 11 décembre 2011 10:54:27
    iMac 21”5, i7, 2.8 GHz, 12 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.2
    My iDisk is : <http://public.me.com/koenigyvan>
    Please : Search for questions similar to your own before submitting them to the community

  • How to Create a Temporary Table with SQL Server

    I know you can create a temporary table in SQL Server 2000, but not quite sure how to do it in CFMX 7, i.e., does the SQL go inside a <CFQUERY dbtype="query"> tag?
    I'm pulling the main set of records from an Oracle server (1st data source), but it does not contain employee names, only employee IDs.  Since I need to show the employee name along with the Emp ID, I'm then pulling a list of "current" employee names from a SQL Server (2nd data source), which is the main database on our CF server.
    I've got a QofQ that works fine, except it only matches EmpIDs that exist in both result sets.  Employees who are no longer employed, don't match, and don't display.  Since I can't do a LEFT OUTER JOIN with a QofQ, what I need to do is get the records from the Oracle server into the SQL Server.  Preferably in a temporary table.
    I was hoping if I could get those Oracle records written to a temp table on the main SQL Server, in same database as the Employee Name table, I could then write a normal <CFQUERY> that uses a LEFT OUTER JOIN.
    I think I could probably write a Stored Procedure that would execute the SQL to create the temporary table, but am trying to avoid having to write the SP, and do it the simplest way.
    This query will be a program that can be run hundreds of times per day, with a form that allows users to select date ranges, locations, and other options.  That starts the queries, which creates the report.  So I just need the temp table to exist only until all the SQL has run, and the <CFOUTPUT> has generated a report.
    If the premise is right, I just need some help with the syntax for creating a SQL Server temp table, when you want to write records to it from an external data source.  I'm trying the following, but getting an error:
    <CFQUERY name="ITE_Temp" datasource="SkynetSQL">
    CREATE TABLE #MyTemp
    (   INSERT INTO #MyTemp
    ITE2.TrueFile char (7) NOT NULL,
    ITE2.CountOfEmployee int NULL,
    ITE2.DTL_SUBTOT decimal NULL,
    ITE2.EMPTYPE char (3) NULL,
    ITE2.ARPT_CD char (3) NULL
    </CFQUERY>
    So I actually created a permanent table on the SQL Server, and wrote the below SQL, which does work, and does write the records to table.  I can then write another CFQUERY with a LEFT OUTER JOIN, and get all the records, including those that don't have matching employee name:
    <CFQUERY datasource="SkynetSQL">
    <CFLOOP index="i" from="1" to = "#ITE2.RecordCount#">
    INSERT INTO ITE_Temp
       (FullFile,
       EmployeeCount,
       DTL_Amount,
       EmployeeType,
       station)
    VALUES  ('#ITE2.TrueFile[i]#',
       #ITE2.CountOfEmployee[i]#,
       #ITE2.DTL_SUBTOT[i]#,
       '#ITE2.EMPTYPE[i]#',
       '#ITE2.ARPT_CD[i]#')
    </CFLOOP>
    </CFQUERY>
    But, I hate to have to create a table and physically write to it.  For one, it seems slower, and doing it in temp would be in memory, and probably much faster, correct?  Is there some way to code the above, so that it does something similar, but in a TEMPORARY TABLE?   If I can figure out how to do this, I can pull data from multiple data sources and servers, and using SQL Server temp tables, work with the data as if it was all on the same SQL Server, and do some cool reports.
    Everything I've done for the past few years, has all been from data from a single source, whether SQL Server, or another server.  Now I need to start writing reports where data can come from 3 or 4 different servers, and be able to do joins (inner and outer).  Thanks for any advice/help.  Much appreciated.
    Gary

    While waiting to hear back, I was able to write the query results from an outside Oracle server, to a table on the local SQL Server, and do the LEFT OUTER JOIN required for the final query and report to work.  That was with this syntax:
    <CFQUERY name="AddTableRecords" datasource="MyTable">
    TRUNCATE TABLE ITE_Temp
    <CFOUTPUT query="ITE2">
    INSERT INTO ITE_Temp
    (FullFile,EmployeeCount,DTL_Amount,EmployeeType,station)
    VALUES
    ('#TrueFile#', #CountOfEmployee#, #DTL_SUBTOT#, '#EMPTYPE#', '#ARPT_CD#')
    </CFOUTPUT>
    </CFQUERY>
    However, I was not able to write to a temporary table AND read the results. I got the syntax to run to write the above results to a temporary table.  But when I tried to read and output the results from the temp table, I got an error.  Also, it wouldn't take the single "#" (local) only the global "##" table var, using this syntax.  Note that if I didn't have the DROP TABLE in the beginning, the 2nd time you run this query, you get an error telling you the table already exists.
    <CFQUERY name="ITE_Temp2" datasource="MyTable">
    DROP TABLE ##MyTemp2
    CREATE TABLE ##MyTemp2
    FullFile char (7) NOT NULL,
    EmployeeCount int NULL,
    DTL_Amount decimal NULL,
    EmployeeType char (3) NULL,
    station char (3) NULL
    <CFOUTPUT query="ITE2">
    INSERT INTO ##MyTemp2 VALUES
    '#ITE2.TrueFile#',
    #ITE2.CountOfEmployee#,
    #ITE2.DTL_SUBTOT#,
    '#ITE2.EMPTYPE#',
    '#ITE2.ARPT_CD#'
    </CFOUTPUT>
    </CFQUERY>
    So even though the above works, I could use some help in reading/writing the output.  I've tried several things similar to below, but they don't work.  It't telling me ITE_Temp2 does not exist.  It's not easy to find good examples of creating temporary tables in SQL Server.
    <CFQUERY name="QueryTest2" datasource="SkynetSQL">
    SELECT *
    FROM ITE_Temp2
    </CFQUERY>
    <CFOUTPUT query="ITE_Temp2">
    Output from Temp Table<br>
    <p>FullFile: #FullFile#, EmployeeCount: #EmployeeCount#</p>
    </CFOUTPUT>
    Thanks for any help/advice.
    Gary.

  • How can I load data into table with SQL*LOADER

    how can I load data into table with SQL*LOADER
    when column data length more than 255 bytes?
    when column exceed 255 ,data can not be insert into table by SQL*LOADER
    CREATE TABLE A (
    A VARCHAR2 ( 10 ) ,
    B VARCHAR2 ( 10 ) ,
    C VARCHAR2 ( 10 ) ,
    E VARCHAR2 ( 2000 ) );
    control file:
    load data
    append into table A
    fields terminated by X'09'
    (A , B , C , E )
    SQL*LOADER command:
    sqlldr test/test control=A_ctl.txt data=A.xls log=b.log
    datafile:
    column E is more than 255bytes
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)
    1     1     1     1234567------(more than 255bytes)

    Check this out.
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch06.htm#1006961

  • Sales order purchase order field is updated with dots in data base table

    HI
    we have problem in  Production when sale order created
    P O date is update with dots and these dots  we are unable to see at screen and data base table
    we go t change mode of the order and delete the P O field with back space (button)  and saving the order
    when we see the change log of the order
    there it is sowing
    Old value            =        "       .   .     "           
    New Value         =       " 00.00.0000"
    Can any one give the suggetions to come out of this problem
    This is we have noticed with only two customers
    Thanks and regards
    Kishore
    Edited by: DevarapalliKK on Oct 23, 2010 8:43 PM
    Edited by: DevarapalliKK on Oct 23, 2010 8:44 PM

    Hi Kishore,
    Two things could have happened:
    1) Since this is happening with only two customers - I am sure it has got to do with some custom code on your system which is causing this problem. I 'd suggest you to create a new order with all the fields
    2) It could be a bug with SAP- might want to check relevant SAP Notes. ( But this could not be a reason, if yes should have had the same prob with all cusotmers)
    regards
    sadhu kishore

  • Updating base table with Materialized View's data

    Hi,
    In order to update base table with MVs data, I am trying real time data transfer between two databases. One is Oracle 8i and other is Oracle 9i. I have created an updatable MV in 9i on a base table using database link. The base table is in 8i. Materialized View log is created in 8i on base table. MV has to be associated to some replication group, but I am not able to create replication group in 9i to which MV has to be associated. The required packages are not installed.
    Replication packages are to be used to create replication group are :
    /*Create Materialized View replication group*/
    BEGIN
    DBMS_REPCAT.CREATE_MVIEW_REPGROUP (
    gname => 'TEST_MV_GRP',
    master => 'TEST_DATA_LINK',
    propagation_mode => 'ASYNCHRONOUS');
    END;
    But above block is giving error.
    Can anyone suggest how to resolve this, or are there any other approaches (by not using replication packages) to update base table with MVs data ?
    Thanks,
    Shailesh

    Yes, I created link between two databases and was able to update tables on 8i from 9i database using that link.
    The error I am getting while creating replication group is :
    ORA-06550
    PLS-00201 : identifier 'SYS.DBMS_REPCAT_UTL2@'TEST_DATA_LINK' must be declared
    ORA-06550
    PLS-00201 : identifier 'SYS.DBMS_REPCAT_UNTRUSTED@'TEST_DATA_LINK' must be declared
    ORA-06512 : at "SYS.DBMS_REPCAT_UTL", line 2394
    ORA-06512 : at "SYS.DBMS_REPCAT_SNA_UTL", line 1699
    ORA-06512 : at "SYS.DBMS_REPCAT_SNA", line 64
    ORA-06512 : at "SYS.DBMS_REPCAT", line 1262
    Is there any other approach which can be used to update base table with MVs data instead of using replication packages ?
    Thanks,
    Shailesh

  • How to know who has created a particular record in the data base table

    Hi All...
    Can any one tell me how to track the information about who has entered the records in to the data base table....
    Thanks in advance...

    You could check the Created By and Created On fields if your tables contains these fields.
    OR
    You could check the table DBTABLOG if table logging is enabled for the table
    OR
    You could check the Change document tables CDHDR and CDPOS.
    -Kiran
    Please mark useful answers

  • Create table with PL/SQL

    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">Hi,</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">I would like to create a table with PL/SQL statement. I wrote that :</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font face="Courier New"><font SIZE="2" COLOR="#0000f0">IF</font><font SIZE="2"> T_Exists </font><font SIZE="2" COLOR="#0000f0">=</font><font SIZE="2"> </font><font SIZE="2" COLOR="#ff0000">'N'</font><font SIZE="2"> </font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">THEN</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font SIZE="2" COLOR="#008000" face="Courier New">-- Create the table</p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font face="Courier New"><font SIZE="2" COLOR="#0000f0">  CREATE</font><font SIZE="2"> </font><font SIZE="2" COLOR="#0000f0">TABLE</font></font><font face="Courier New" size="2"> T_Name</font></p>
    <p style="margin-top: 0; margin-bottom: 0"><font SIZE="2" COLOR="#0000f0" face="Courier New">  (</p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">    EXPLICITKEY </font></font><font face="Courier New"><font SIZE="2" COLOR="#ff0000"> VARCHAR2</font><font SIZE="2" COLOR="#0000f0">(</font><font SIZE="2" COLOR="#800000">25</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">),</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">    BALANCE </font></font><font face="Courier New"><font SIZE="2" COLOR="#ff0000">     NUMBER</font><font SIZE="2" COLOR="#0000f0">(</font><font SIZE="2" COLOR="#800000">15</font><font SIZE="2" COLOR="#0000f0">,</font><font SIZE="2" COLOR="#800000">2</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">),</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">    PERIOD01 </font></font><font face="Courier New"><font SIZE="2" COLOR="#ff0000">    NUMBER</font><font SIZE="2" COLOR="#0000f0">(</font><font SIZE="2" COLOR="#800000">15</font><font SIZE="2" COLOR="#0000f0">,</font><font SIZE="2" COLOR="#800000">2</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">),</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">    PERIOD02 </font></font><font face="Courier New"><font SIZE="2" COLOR="#ff0000">    NUMBER</font><font SIZE="2" COLOR="#0000f0">(</font><font SIZE="2" COLOR="#800000">15</font><font SIZE="2" COLOR="#0000f0">,</font><font SIZE="2" COLOR="#800000">2</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">),</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">    PERIOD03 </font></font><font face="Courier New"><font SIZE="2" COLOR="#ff0000">    NUMBER</font><font SIZE="2" COLOR="#0000f0">(</font><font SIZE="2" COLOR="#800000">15</font><font SIZE="2" COLOR="#0000f0">,</font><font SIZE="2" COLOR="#800000">2</font></font><font face="Courier New" SIZE="2" COLOR="#0000f0">),</font></p>
    <font SIZE="2" face="Courier New"><p style="margin-top: 0; margin-bottom: 0">  </font><font SIZE="2" COLOR="#0000f0" face="Courier New">);</p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font SIZE="2" COLOR="#0000f0" face="Courier New">ELSE</p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font SIZE="2" COLOR="#008000" face="Courier New">-- Truncate the table</p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font face="Courier New"><font SIZE="2" COLOR="#0000f0">  DELETE</font><font SIZE="2"> </font><font SIZE="2" COLOR="#0000f0">FROM</font><font SIZE="2"> T_Name</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">;</font></p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font face="Courier New"><font SIZE="2" COLOR="#0000f0">END</font><font SIZE="2"> </font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">IF;</font></p>
    </font>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">But there is an error :</font></p>
    <p style="margin-left: 10; margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">PLS-00103: Encountered the symbol &quot;CREATE&quot; when expecting one of the following:</font></p>
    <p style="margin-left: 10; margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">begin case declare exit for goto if loop mod null pragma</font></p>
    <p style="margin-left: 10; margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">raise return select update while with &lt;an identifier&gt;</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">Do you know why ?</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">Thank you for you help.</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><i><b><font face="Tahoma" size="2">Patrick</font></b></i></p>

    Thank you very much. And you're right because there is an error with the table <b>T_Name</b> because it doesn't exit. But <b>T_Name</b> is a variable with the name of the table to manage.
    How can I send a variable name of table in the part :
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    </font><font SIZE="2"><p style="margin-top: 0; margin-bottom: 0"></font><font face="Courier New"><font SIZE="2" COLOR="#0000f0">  DELETE</font><font SIZE="2"> </font><font SIZE="2" COLOR="#0000f0">FROM</font><font SIZE="2"> T_Name</font></font><font SIZE="2" COLOR="#0000f0"><font face="Courier New">;</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><font face="Tahoma" size="2">Thank you.</font></p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>
    <p style="margin-top: 0; margin-bottom: 0"><i><b><font face="Tahoma" size="2">Patrick</font></b></i></p>

  • How to stored data after clicking checkbox in data base table

    REPORT  ZT                                      .
    TYPE-pools: slis.
    tables:mkpf,mseg,mard,COWB_COMP,ZTABLE.
    Types:BEGIN OF tp_data,
         mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         endkz like COWB_COMP-endkz,
    END OF tp_data,
    tp_tbl_data TYPE STANDARD TABLE OF tp_data.
    MODIFIED*******************
    DATA: WA TYPE TP_DATA.
    MODIFIED*******************
    *data: t_data like Y00_MM_ISSUE_DAT occurs 0 with header line.
    Constants
    Data objects (variable declarations and definitions)
    Report data to be shown.
    DATA: it_data TYPE STANDARD TABLE OF tp_data.
    MODIFIED*******************
    DATA : V_REPID LIKE SY-REPID.
    MODIFIED*******************
    Heading of the report.
    DATA: t_heading TYPE slis_t_listheader.
    *========================== Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                  smatnr FOR mseg-matnr MODIF ID m2,
                  swerks FOR mard-werks MODIF ID m3,
                  slgort FOR mard-lgort MODIF ID m4,
                  slgpbe FOR mard-lgpbe MODIF ID m5,
                  scharg FOR mseg-charg MODIF ID m6,
                  sbwart FOR mseg-bwart MODIF ID m7,
                  skostl FOR mseg-kostl MODIF ID m8,
                  saufnr FOR mseg-aufnr MODIF ID m9,
                  srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
              pse RADIOBUTTON GROUP radi,
              bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    MODIFIED*******************
    INITIALIZATION.
    V_REPID = sy-repid.
    MODIFIED*******************
    *=========================== Event Blocks
    AT selection-SCREEN.
    start-OF-selection.
    PERFORM get_data USING it_data.
    END-OF-selection.
    PERFORM build_alv USING it_data t_heading.
    *=========================== Subroutines
    *&      Form  get_data
          Gets the information to be shown in the report.
    FORM get_data USING t_data TYPE tp_tbl_data.
    SELECT msegmblnr msegmatnr mardwerks mardlgort mard~lgpbe
    msegcharg msegbwart mkpf~budat
       msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
    INTO CORRESPONDING FIELDS OF TABLE t_data
    FROM mseg
    JOIN mard ON mardmatnr EQ msegmatnr
                  JOIN mkpf ON msegmblnr EQ mkpfmblnr
                  WHERE mseg~matnr IN smatnr.
    ENDFORM.                    " get_data
    *&      Form  build_alv
          Builds and display the ALV Grid.
    FORM build_alv USING t_data TYPE tp_tbl_data
         t_heading  TYPE slis_t_listheader.
    ALV required data objects.
    DATA: w_title   TYPE lvc_title,
           w_comm    TYPE slis_formname,
           w_status  TYPE slis_formname,
           x_layout  TYPE slis_layout_alv,
           t_event    TYPE slis_t_event,
           t_fieldcat TYPE slis_t_fieldcat_alv,
           t_sort     TYPE slis_t_sortinfo_alv.
    REFRESH t_fieldcat.
    REFRESH t_event.
    REFRESH t_sort.
    CLEAR x_layout.
    CLEAR w_title.
    Field Catalog
    PERFORM set_fieldcat2 USING:
           1 'MBLNR' 'MBLNR' 'MSEG' space space space space space space
    space space space space space space t_fieldcat ,
           2 'MATNR' 'MATNR' 'MSEG' space space space space space space
    space space space space space space  t_fieldcat ,
           3 'WERKS' 'WERKS' 'MARD' space space space space space space
    space space space space space space  t_fieldcat,
           4 'LGORT' 'LGORT' 'MARD' space space space space space space
    space space space space space space t_fieldcat ,
           5 'LGPBE' 'LGPBE' 'MARD' space space space space space space
    space space space space space space t_fieldcat ,
           6 'CHARG' 'CHARG' 'MSEG' space space space space space space
    space space space space space space t_fieldcat ,
           7 'BWART' 'BWART' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
           8 'BUDAT' 'BUDAT' 'MKPF' space  space space space space space
    space space space space space space t_fieldcat,
           9 'MENGE' 'MENGE' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
           10 'MEINS' 'MEINS' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
           11 'KOSTL' 'KOSTL' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
           12 'AUFNR' 'AUFNR' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
           13 'RSNUM' 'RSNUM' 'MSEG' space  space space space space space
    space space space space space space t_fieldcat,
       14 'ENDKZ' 'ENDKZ' 'COWB_COMP' space space 'select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat.
    Layout
    x_layout-zebra = 'X'.
    Top of page heading
    PERFORM set_top_page_heading USING t_heading t_event.
    Events
    PERFORM set_events USING t_event.
    GUI Status
    w_status = ''.
    User commands
    w_comm   = 'USER_COMMAND'.
    Order
    Example
    PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
    PERFORM set_order USING 'MBLNR' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.
    Displays the ALV grid
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       i_callback_program       = V_REPID
       it_fieldcat              = t_fieldcat
       is_layout                = x_layout
       it_sort                  = t_sort
       i_callback_pf_status_set = w_status
       i_callback_user_command  = w_comm
       i_save                   = 'X'
       it_events                = t_event
       i_grid_title             = w_title
    TABLES
       t_outtab                 = t_data
    EXCEPTIONS
       program_error            = 1
       OTHERS                   = 2.
    IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM.                    " build_alv.
    *&      Form  set_top_page_heading
          Creates the report headings.
    FORM set_top_page_heading USING t_heading TYPE slis_t_listheader
         t_events  TYPE slis_t_event.
    DATA: x_heading TYPE slis_listheader,
           x_event   TYPE LINE OF slis_t_event.
    Report title
    CLEAR t_heading[].
    CLEAR x_heading.
    x_heading-typ = 'H'.
    x_heading-info = 'Reporte Prueba'(001).
    APPEND x_heading TO t_heading.
    Program name
    CLEAR x_heading.
    x_heading-typ = 'S'.
    x_heading-KEY = 'Program: '.
    x_heading-info = sy-repid.
    APPEND x_heading TO t_heading.
    User who is running the report
    CLEAR x_heading.
    x_heading-typ = 'S'.
    x_heading-KEY = 'User: '.
    x_heading-info = sy-uname.
    APPEND x_heading TO t_heading.
    Date of execution
    CLEAR x_heading.
    x_heading-typ = 'S'.
    x_heading-KEY = 'Date: '.
    WRITE sy-datum TO x_heading-info.
    APPEND x_heading TO t_heading.
    Time of execution
    CLEAR x_heading.
    x_heading-typ = 'S'.
    x_heading-KEY = 'Time: '.
    WRITE sy-uzeit TO x_heading-info.
    APPEND x_heading TO t_heading.
    Top of page event
    x_event-name = slis_ev_top_of_page.
    x_event-FORM = 'TOP_OF_PAGE'.
    APPEND x_event TO t_events.
    ENDFORM.
    *&      Form  set_events
          Sets the events for ALV.
          The TOP_OF_PAGE event is alredy being registered in
          the set_top_page_heading subroutine.
    FORM set_events USING t_events TYPE slis_t_event.
    DATA: x_event   TYPE LINE OF slis_t_event.
    Example
    clear x_event.
    x_event-name = .
    x_event-form = .
    append x_event to t_event.
    ENDFORM.
    *&      Form  set_order
          Adds an entry to the order table.
    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
         t_sort TYPE slis_t_sortinfo_alv.
    DATA: x_sort TYPE slis_sortinfo_alv.
    CLEAR x_sort.
    x_sort-fieldname = p_fieldname.
    x_sort-tabname   = p_tabname.
    x_sort-UP = p_up.
    x_sort-down = p_down.
    x_sort-subtot = p_subtot.
    APPEND x_sort TO t_sort.
    ENDFORM.                    "set_order
    *&      Form  set_fieldcat2
          Adds an entry to the field catalog.
    FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname
    p_ref_tabname
         p_outputlen p_noout
         p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
         p_hotspot p_showasicon p_checkbox p_edit
         p_dosum
         t_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: wa_fieldcat TYPE slis_fieldcat_alv.
    CLEAR wa_fieldcat.
    General settings
    wa_fieldcat-fieldname = p_fieldname.
    wa_fieldcat-col_pos = p_colpos.
    wa_fieldcat-no_out = p_noout.
    wa_fieldcat-HOTSPOT = p_hotspot.
    wa_fieldcat-CHECKBOX = p_checkbox.
    wa_fieldcat-ICON = p_showasicon.
    wa_fieldcat-do_sum = p_dosum.
    Set reference fieldname, tablenam and rollname.
    If p_ref_tabname is not given, the ref_fieldname given is a data
    *element.
    If p_ref_tabname is given, the ref_fieldname given is a field of a
    *table. In case ref_fieldname is not given, it is copied from the
    *fieldname.
    IF p_ref_tabname IS INITIAL.
       wa_fieldcat-rollname =   p_ref_fieldname.
    ELSE.
       wa_fieldcat-ref_tabname = p_ref_tabname.
       IF p_ref_fieldname EQ space.
         wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.
       ELSE.
         wa_fieldcat-ref_fieldname =   p_ref_fieldname.
       ENDIF.
    ENDIF.
    Set output length.
    IF NOT p_outputlen IS INITIAL.
       wa_fieldcat-outputlen = p_outputlen.
    ENDIF.
    Set text headers.
    IF NOT p_seltext_m IS INITIAL.
       wa_fieldcat-seltext_m = p_seltext_m.
    ENDIF.
    IF NOT p_seltext_l IS INITIAL.
       wa_fieldcat-seltext_l = p_seltext_l.
    ENDIF.
    IF NOT p_seltext_s IS INITIAL.
       wa_fieldcat-seltext_s = p_seltext_s.
    ENDIF.
    IF NOT p_reptext_ddic IS INITIAL.
       wa_fieldcat-reptext_ddic = p_reptext_ddic.
    ENDIF.
    IF NOT p_ddictxt IS INITIAL.
       wa_fieldcat-ddictxt = p_ddictxt.
    ENDIF.
    Set as editable or not.
    IF NOT p_edit IS  INITIAL.
       wa_fieldcat-INPUT     = 'X'.
       wa_fieldcat-EDIT     = 'X'.
    ENDIF.
    APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    FORM top_of_page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
         i_logo             = 'TRVPICTURE04'
       it_list_commentary = t_heading.
    ENDFORM.                    " alv_top_of_page
    *&      Form  user_command
          Called on user_command ALV event.
          Executes custom commands.
    FORM user_command USING r_ucomm     LIKE sy-ucomm
         rs_selfield TYPE slis_selfield.
    case sy-ucomm.
    WHEN '&DATA_SAVE'.
    LOOP AT IT_DATA INTO WA WHERE ENDKZ = 'X'.
       IF WA-ENDKZ = 'X'.
    *******MODIFIED*********************************
    U DELETE THIS CODE N USER UR INSERT CODE TO CHECK
    SY-MSGV1 = WA-MBLNR.                              " U CAN DELETE
    SY-MSGV2 = WA-MATNR.                              " U CAN DELETE
    MESSAGE ID 'BC_BOR' TYPE 'I' NUMBER '888'          " U CAN DELETE
            WITH SY-MSGV1 SY-MSGV2. " U CAN DELETE
    *******MODIFIED*********************************
       INSERT ZTABLE.
       ENDIF.
    endloop.
    ENDCASE.
    ENDFORM.                    "user_command
    this is my code, database will stored in fields only.data is empty,
    how to slove that one,send any sugestion.

    Hi Lakshmi,
           Can u explain briefly what is ur requirement. U mean to say that after clicking the checkbox in data base table or Screen?
    Regards,
      Jayaram...

  • Data base table hierarchy

    hi ,
    when i opened the Data Base table in SE11 ..the hierarchy of the fields r not  displaying in a standard order.can anyone tell where we can find the setting option to rectify the correct sequence of the fields.
    Suman R

    Hi suman,
       You can do anything with the fields created already ,
       while displaying you can hide some fields and display
       goto the selection screen of table , in menu settings>format list>choose fields

  • Performance for join 9 custom table with native SQL ?

    Hi Expert,
    I need your opinion regarding performance to join 9 tables with native sql. Recently i have to tunning some customize extraction cost  report. This report extract about 10 million cost of material everyday.
    The current program actually, try to populate the condition data and insert into customize table and join all the table to get data using native sql.
    SELECT /*+ ordered use_hash(mst,pg,rg,ps,rs,dpg,drg,dps,drs) */
                mst.werks, ....................................
    FROM
                sapsr3.zab_info mst,
                sapsr3.zab_pc pg,
                sapsr3.zab_rc rg,
                sapsr3.zab_pc ps,
                sapsr3.zab_rc rs,
                sapsr3.zab_g_pc dpg,
                sapsr3.zab_g_rc drg,
                sapsr3.zab_s_pc dps,
                sapsr3.zab_s_rc drs
            WHERE mst.zseq_no = :p_rep_run_id
            AND mst.werks = :p_werks
            AND mst.mandt = rg.mandt(+)
            AND mst.ekorg = rg.ekorg(+)
            AND mst.lifnr = rg.lifnr(+)
            AND mst.matnr = rg.matnr(+)
            ...............................................   unitl all table (9 tables)
            AND ps.mandt = dps.mandt(+)
            AND ps.knumh = dps.knumh(+)
            AND ps.zseq_no = dps.zseq_no(+)
            AND COALESCE (dps.kbetr, drs.kbetr, dpg.kbetr, drg.kbetr) <> 0
    It seems the query ask for database to using hashed table. would that be it will burden the database ? and impacted to others sap process ?
    Please advise
    Thank You and Best Regards

    you can only argue coming from measurements and that is not the case.
    Coming from the code, I see only that you do not understand it at all, so better leave it as it is. It is not a hash table, but a hash join on these table.

  • How to stored data after clicking check box save in data base table

    TABLES:mseg,mard,mkpf.
    TYPE-POOLS:slis.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    DATA:BEGIN OF itab OCCURS 0,
         mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
         END OF itab.
    DATA:  gt_fieldcat TYPE slis_t_fieldcat_alv,
           gw_fieldcat TYPE slis_fieldcat_alv,
           gt_layout TYPE slis_layout_alv.
    START-OF-SELECTION.
    SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
    INTO TABLE itab FROM
              mseg JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
      IF sy-subrc EQ 0.
        SORT itab BY matnr.
        PERFORM display_alv_output.
      ENDIF.
    *&      Form  display_alv_output
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv_output.
      REFRESH gt_fieldcat.
      gw_fieldcat-fieldname = 'MBLNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 1.
      gw_fieldcat-seltext_m = 'material document'.
      gw_fieldcat-key = 'x'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MATNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 2.
      gw_fieldcat-seltext_m = 'material'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'WERKS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 3.
      gw_fieldcat-seltext_m = 'plant'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGORT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 4.
      gw_fieldcat-seltext_m = 'storage location'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGPBE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 5.
      gw_fieldcat-seltext_m = 'storage bin'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'CHARG'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 6.
      gw_fieldcat-seltext_m = 'Batch number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BWART'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 7.
      gw_fieldcat-seltext_m = 'Movement Type (Inventory Management)'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BUDAT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 8.
      gw_fieldcat-seltext_m = 'Posting Date in the Document'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MENGE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 9.
      gw_fieldcat-seltext_m = 'QUANTITY'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MEINS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 10.
      gw_fieldcat-seltext_m = 'Basic unit of measure'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'KOSTL'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 11.
      gw_fieldcat-seltext_m = 'Cost center'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'AUFNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 12.
      gw_fieldcat-seltext_m = 'Order Number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'RSNUM'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 13.
      gw_fieldcat-seltext_m = 'Number of Reservation / Depe'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-col_pos = 14.
      gw_fieldcat-fieldname = 'CHECKBOX'.
      gw_fieldcat-seltext_m = 'Compltd'.
      gw_fieldcat-checkbox = 'X'.
      gw_fieldcat-edit = 'X'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = 'ZREPORT'
        IS_LAYOUT                         = gt_layout
        IT_FIELDCAT                       = gt_fieldcat
       TABLES
         t_outtab                          = itab
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2.
    ENDFORM.                    " display_alv_output
    this is mycode .
    send me replay.

    Hi Lakshmi,
           Can u explain briefly what is ur requirement. U mean to say that after clicking the checkbox in data base table or Screen?
    Regards,
      Jayaram...

  • Creation of field in data base table

    Hi,
      I want to create a field in data base table , which holds the float values but i don't want to use the FLTP data type, why bcoz if i use this data type in selection screen of the table the the field is not appeqring, i dont want to go for the option QUAN bcoz there i need to define the ref table and ref field.
    please explain what is the way to create this field.
    regards
    Krishna

    Use NUMC
    Awrd POints if useful
    Bhupal

  • Problems with retrieving data from tables with 240 and more records

    Hi,
    I've been connecting to Oracle 11g Server (not sure exact version) using Oracle 10.1.0 Client and O10 Oracle 10g driver. Everything was ok.
    I installed Oracle 11.2.0 Client and I started to have problems with retrieving data from tables.
    First I used the same connection string, driver and so on (O10 Oracle 10g) then I tried ORA Oracle but with no luck. The result is like this:
    I'm able to connect to database. I'm able to retrieve data but from small tables (e.g. with 110 records it works perfectly using both O10 and ORA drivers). When I try to retrieve data from tables with like 240 and more records retrieval simply hangs (nothing happens at all - no error, no timeout). Application seems to hang forever.
    I'm using Powerbuilder to connect to Database (either PB10.5 using O10 driver or PB12 using ORA driver). I used DBTrace, so I see that query hangs on the first FETCH.
    So for the retrievals that hang I have something like:
    (3260008): BIND SELECT OUTPUT BUFFER (DataWindow):(DBI_SELBIND) (0.186 MS / 18978.709 MS)
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=0
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=1
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=0
    (3260008): EXECUTE:(DBI_DW_EXECUTE) (192.982 MS / 19171.691 MS)
    (3260008): FETCH NEXT:(DBI_FETCHNEXT)
    and this is the last line,
    while for retrievals that end, I have FETCH producing time, data in buffer and moving to the next Fetch until all data is retrieved
    On the side note, I have no problems with retrieving data either by SQL Developer or DbVisualizer.
    Problems started when I installed 11.2.0 Client. Even if I want to use 10.0.1 Client, the same problem occurs. So I guess something from 11.2.0 overrides 10.0.1 settings.
    I will appreciate any comments/hints/help.
    Thank you very much.

    pgoel wrote:
    I've been connecting to Oracle 11g Server (not sure exact version) using Oracle 10.1.0 Client and O10 Oracle 10g driver. Everything was ok.Earlier (before installing new stuff) did you ever try retrieving data from big tables (like 240 and more records), if yes, was it working?Yes, with Oracle 10g client (before installing 11g) I was able to retrieve any data, either it was 10k+ records or 100 records. Installing 11g client changed something that even using old 10g client (which I still have installed) fails to work. The same problem occur no matter I'm using 10g or 11g client now. Powerbuilder hangs on retrieving tables with more than like 240 records.
    Thanks.

Maybe you are looking for