Dynamic Queries in ABAP?

Hi,
I'm currently trying to develop an RFC FM that can create a dynamic query. I want to use the FM to query different tables without having to write n number of different cases.
For example a particular application might need to query table xyz with three fields defined in the where clause. Another app might need to query the same table with only two fields defined in the where clause. In the same way I would like to be able to use the very same FM to query another table abc with x number of parameters.
I'd like to send the where clause in a table.
Is that possible?

hi Roberto,
try with this function.
FUNCTION ztest.
""Local Interface:
*"  IMPORTING
*"     REFERENCE(EXTRACT_TABLE) TYPE  DD02L-TABNAME
*"     REFERENCE(WHERE_TAB) TYPE  WHERECONDS
*"     REFERENCE(FIELD_LIST) TYPE  WHERECONDS
*"  EXPORTING
*"     REFERENCE(RETURN_TABLE) TYPE  TABLE
  TYPE-POOLS: abap.
  FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
                 <dyn_wa> TYPE ANY.
  DATA: dy_table TYPE REF TO data,
        dy_line  TYPE REF TO data,
        xfc TYPE lvc_s_fcat,
        ifc TYPE lvc_t_fcat,
        field_line TYPE wherecond.
data: fields(1000).
  DATA : idetails TYPE abap_compdescr_tab,
         xdetails TYPE abap_compdescr.
  DATA : ref_table_des TYPE REF TO cl_abap_structdescr.
Get the structure of the table.
  ref_table_des ?= cl_abap_typedescr=>describe_by_name( extract_table ).
  idetails[] = ref_table_des->components[].
  LOOP AT idetails INTO xdetails.
    READ TABLE field_list WITH KEY text = xdetails-name TRANSPORTING NO FIELDS.
    check sy-subrc = 0.
    CLEAR xfc.
    xfc-fieldname = xdetails-name .
    xfc-datatype = xdetails-type_kind.
    xfc-inttype = xdetails-type_kind.
    xfc-intlen = xdetails-length.
    xfc-decimals = xdetails-decimals.
    APPEND xfc TO ifc.
  ENDLOOP.
Create dynamic internal table and assign to FS
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = ifc
    IMPORTING
      ep_table        = dy_table.
  ASSIGN dy_table->* TO <dyn_table>.
  LOOP AT field_list INTO field_line.
    CONCATENATE fields field_line-text INTO fields SEPARATED BY space.
  ENDLOOP.
Select Data from table.
  SELECT (fields) FROM (extract_table) INTO TABLE <dyn_table> WHERE (WHERE_TAB).
  return_table[] = <dyn_table>.
ENDFUNCTION.
where
EXTRACT_TABLE -->  name of the table
WHERE_TAB       -->  internal table contains the where conditions
FIELD_LIST          -->  list of fields that u want
RETURN_TABLE  -->  dynamic table returns the selected values

Similar Messages

  • Dynamic documents in ABAP Objects (weblog)

    Hi SDNers,
    Do you want to implement the following features in ABAP Screens?
    1. Large font sizes and more colour options than traditional ABAP/4 (There are some limitations also)
    2. ICONS and pictures in different sizes
    3. Texts
    4. Links
    5. Pushbuttons
    6. Input fields
    7. Dropdown list boxes
    8. Tables with row span and with column span
    9. Tables with frames and without frames
    10. Tables with buttons, icons, pictures, input elements and texts in it.
    Then please read the below weblog to incorporate these features...
    <a href="/people/venkata.ramisetti/blog/2005/12/20/dynamic-documents-in-abap-objects">Dynamic Documents in ABAP Objects</a>
    Thanks,
    Ramakrishna

    one limitation which comes to my mind immediately is that you cannot create spool output of the dynamic document.
    Regards
    Raja

  • How to add Image dynamically in Webdynpro ABAP

    Hi Experts,
    How to add Image dynamically in Webdynpro ABAP.
    My requirement is i maintain all the images in a table.
    image source has to pick the table URl dynamically and display.
    is that possible in webdynpro?
    and also please give the suggesion,
    without using MIME objects is that anyway to get images?
    Thanks in advance.
    Regrads,
    Jeyanthi

    Hi,
      are those icons wou want to display then. he following code will be useful.
    data : lo_IMG type ref to CL_WD_IMAGE.
    LO_IMG = cl_wd_IMAGE=>new_IMAGE( id = img_id SOURCE = 'ICON_BW_APD_TARGET' tooltip = sts_tltp ).
    lo_cont->add_child( the_child = lo_img ).
    here lo_cont is the container where you want to add the image dynamically and source is the attribiute through which you can change the ICON image. this thing you can getit from data base table and change accordingly.
    Regards,
    Anil kumar G

  • Regarding parallel queries in ABAP same as in oracle 10g

    Hi,
       Is there any way we can write parallel queries in ABAP, in the same way we do in oracle 10g.Kindly see below;
    alter table emp parallel (degree 4);
    select degree from user_tables where table_name = 'EMP';
    select count(*) from emp;
    alter table emp noparallel;
    SELECT /*+ PARALLEL(emp,4) / COUNT()
    FROM emp;
    The idea here is to distribute the load of select query in multiple CPUs for load balancing & performance improvement.
    Kindly advise.
    Thanks:
    Gaurav

    Hi,
    >    Is there any way we can write parallel queries in ABAP, in the same way we do in oracle 10g.
    sure. Since it is just a hint...
    SELECT *
      FROM t100 INTO TABLE it100
      %_HINTS ORACLE 'PARALLEL(T100,4)'.
    will give you such an execution plan for example:
    SELECT STATEMENT ( Estimated Costs = 651 , Estimated #Rows = 924.308 )
           4 PX COORDINATOR
               3 PX SEND QC (RANDOM) :TQ10000
                 ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                 Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
                   2 PX BLOCK ITERATOR
                     ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                     Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
                       1 TABLE ACCESS FULL T100
                         ( Estim. Costs = 651 , Estim. #Rows = 924.308 )
                         Estim. CPU-Costs = 33.377.789 Estim. IO-Costs = 646
    PX = Parallel eXecution...
    But be sure that you know what you do with the parallel execution option... it is not scalable.... .
    Kind regards,
    Hermann

  • SELECT  QUERIES IN ABAP.....

    Can you give some idea about writing efficient select queries in ABAP?

    Hi kishan,
      i can give you some hint from one document, please reward point.
    The hit list is the set of rows determined by the WHERE clause. In other words, it is the set of table rows that the database system must take into account to respond to the query. Don’t confuse the hit list with the solution set, which is the set of rows (not necessarily from the table the query deals with) the database system returns to the program. Notice that in many cases the query’s hit list and the solution set are different.
    What is the reason behind this rule? A smaller hit list saves disk I/Os by the database system and often reduces network load. Both of these factors have a strong influence on your program’s runtime performance.
    How can you use ABAP to limit a hit list? First, use a WHERE clause whenever possible. Second, always try to describe the full search condition (not just part of it) within a single WHERE clause. ABAP provides a variety of arithmetical and logical operators to do this. Compared with your application program, the database server is usually the better place to evaluate search conditions.
    Let me give you an example: Run a query against the flight table to produce a list of all flight dates for Lufthansa flight 0300 in 1998. Air carrier and air connection are known and can easily be used within the WHERE clause of the SELECT statement. The relevant year is also given, but at first glance it is difficult to build an appropriate search condition. Faced with this situation, you could be tempted to use the ABAP CHECK statement.
    CHECK evaluates the subsequent logical expression. If it is true, the processing continues with the next statement. CHECK with a negative outcome terminates the current SELECT-ENDSELECT loop to start with the next row of the solution set, if there is one. Considering that fldateis a type D(YYYYMMDD) column of the sflighttable, a correct fragment of an ABAP program could look like this:
    SELECT fldate
      FROM sflight INTO xdate
      WHERE carrid = 'LH'
        AND connid = '0300'.
      CHECK xdate = '1998'.
        WRITE: / xdate.
    ENDSELECT.
    With ABAP in general, CHECK does the job of pattern matching in character variables. But in the WHERE clause of a SELECT statement, pattern matching also can be done easily by applying the LIKE operator. Within the search pattern, two characters have a particular meaning: “_” stands for any one character and “%” stands for any character string. With this in mind, a better solution would be:
    SELECT fldate
      FROM sflight INTO xdate
      WHERE carrid ='LH'
        AND connid ='0300'
        AND fldate LIKE '1998%'.
      WRITE: / xdate.
    ENDSELECT.

  • Reg dynamic actions in abap-hr

    Hi Gurus ,
    What is dynamic actions in abap-hr ,can any body explains it
    with an example ...
    Thanks & Regards
    Suman

    hi dynamic actions changes or create the infotype record on maintainance  of another infotype.
    like after hiring a person if u want to default joining date in 0041 infotype.
    then u will check molga.
    p too1p-molga=40
    p is used to check conditions.
    then u will insert the records in 0041
    i ins,0041,,,(p0000-begda),(p0000-endda)/d
    /d is for processing in background.
    then u will default values in 0000
    w p0041-dar01 = 'hd'
    w p0041-dat01 = p0000-begda.
    w is for defaulting value.
    go to spro-personnel management - personnel administration-customizing procedures-dynamic action .
    here u have documentation.

  • Dynamic selections in ABAP HR

    Hi,
    What is meant by dynamic selections in ABAP HR report using a LDB?

    hi,
    use this.
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE <node>.
    Also check this.
    [https://forums.sdn.sap.com/click.jspa?searchID=20295165&messageID=5678733]

  • Dynamic query in ABAP

    Can we use dynamic query in ABAP?

    1. Dynamic where clause
    You can use an internal table to build a dynamic where clause:
    data: where_tab(30) occurs 1 with header line,                     
             where_clause(30) type c.                                     
    Build the where clause. Will look like this when finished
    WHERE ZAFSTMD02 = 'X' AND rbusa = '5145'
    With a constant, result: ZAFSTMD01 = 'X'
    concatenate 'ZAFSTMD' zcostcheck-zmaaned  ' = ''X'''  into where_clause.                              
    Append to internal table where_tab
    append where_clause to where_tab.                                  
    With a variable, result: AND rbusa = '5145'
    concatenate 'AND rbusa = '  ''''  i_tab-zgsber  ''''
    append where_clause to where_tab.                                  
    Select
    select * from zcostfreq                                           
         where (where_tab).                                              
    endselect.                                                        
    Note that you can combine static and dynamic where clauses:
    select * from zcostfreq                                           
         where bukrs = '2021' AND
                                  (where_tab).                                              
    endselect.                                                        
    2. Using a dynamic table name
    This report prints the number og entries in a table. The table name is
    specified by a parameter.
    data:
      l_count type i.
    parameters:
    p_tab type tabname.
    start-of-selection.
      select count(*) from (p_tab) into l_count.
      write: / 'Number of entries in table ', p_tab, l_count.
    3. Dynamic retrieval and writing of data
    In this example, data is retrieved from the table selected on the selection
    screen, and the contents of the
    table is written to the screen.
    DATA:
    Create variable that can contain referecene to any data
      dataref TYPE REF TO data.
    FIELD-SYMBOLS:
      <row>         TYPE ANY,
      <component>   TYPE ANY.
    PARAMETERS:
    p_tab TYPE tabname.
    START-OF-SELECTION.
    Create a workarea for the tabel selected on the selection screen
      CREATE DATA dataref TYPE (p_tab).
    The variable dataref cannot be accessed directly, so a field symbol is
    used
      ASSIGN dataref->* TO <row>.
      SELECT *
        FROM (p_tab) UP TO 10 ROWS
        INTO <row>.
        NEW-LINE.
        DO.
        Write all the fields in the record   
          ASSIGN COMPONENT sy-index
            OF STRUCTURE <row>
            TO <component>.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
          WRITE <component>.
        ENDDO.
      ENDSELECT.
    4. Dynamic SELECT
    TYPES:
      BEGIN OF st_bseg,
        bukrs LIKE bseg-bukrs,
        belnr LIKE bseg-belnr,
        dmbtr LIKE bseg-dmbtr,
      END OF st_bseg.
    DATA:
      sel_list   TYPE STANDARD TABLE OF edpline,
      li_bseg    TYPE STANDARD TABLE OF st_bseg,
      l_bseg     TYPE st_bseg.
    START-OF-SELECTION.
      APPEND 'bukrs belnr dmbtr' TO sel_list.
      SELECT (sel_list)
        FROM bseg  UP TO 100 ROWS
        INTO TABLE li_bseg.
      LOOP AT li_bseg INTO l_bseg.
        WRITE : / l_bseg-bukrs, l_bseg-belnr, l_bseg-dmbtr.
      ENDLOOP.

  • Dynamic queries in weblogic

    In case of dynamic queries, I found out that the finder method can not be defined
    in the Home class. I defined the finder
    method in the Bean.
    In my Bean, this is the code:
    public Collection findAllActivities(String filter, Object[] arguments) throws
    FinderException
         Properties myProp = new Properties();
         for(int i = 0; i < arguments.length; i++)
              myProp.setProperty(String.valueOf(i), String.valueOf((arguments)));
         try
              InitialContext ic = new InitialContext();                
              RolesHome rh = (RolesHome)ic.lookup("RolesHome");     
              QueryHome qh = (QueryHome)rh;
              String weblogicQL = "SELECT DISTINCT OBJECT(o) FROM roles AS o" + filter;
              Query query = qh.createQuery();
              return query.find(weblogicQL, myProp);
         catch (Exception e)
              e.printStackTrace();
              return null;
    I get a naming exception if I use :      RolesHome rh = (RolesHome)ic.lookup("RolesHome");
    javax.naming.NameNotFoundException: Unable to resolve 'RolesHome' Resolved: ''
    Unresolved:'RolesHome' ; remaining name
    'RolesHome'
    I get a casting exception if I use:      RolesHome rh = (RolesHome)ic.lookup("Roles");
    In my jsp file:
    I have this code
    InitialContext jndiContext = new InitialContext();
    Object obj = jndiContext.lookup("Roles");
    RolesHome rolesHome = (RolesHome) obj;
    list = (ArrayList) rolesHome.findAllActivities(filter, filterParams);          
    but the problem is that the home interface does not contain the findAllActivities
    function. I have already defined rolesHome
    earlier in the code which I want to use for findAllActivities also. I can not
    cast the bean e.g. RolesBean rolesBean = (
    RolesBean) rolesHome. I do not want to create a new bean as I am already using
    an old rolesHome. How do I solve this
    problem??? Please do let me know. I am really confused.
    Thanks
    Ronak Parekh

    This should be posted to the ejb newsgroups
    mbg
    "ronak" <[email protected]> wrote in message
    news:3e57faa9$[email protected]..
    >
    In case of dynamic queries, I found out that the finder method can not bedefined
    in the Home class. I defined the finder
    method in the Bean.
    In my Bean, this is the code:
    public Collection findAllActivities(String filter, Object[] arguments)throws
    FinderException
    Properties myProp = new Properties();
    for(int i = 0; i < arguments.length; i++)
    myProp.setProperty(String.valueOf(i), String.valueOf((arguments)));
    try
    InitialContext ic = new InitialContext();
    RolesHome rh = (RolesHome)ic.lookup("RolesHome");
    QueryHome qh = (QueryHome)rh;
    String weblogicQL = "SELECT DISTINCT OBJECT(o) FROM roles AS o" + filter;
    Query query = qh.createQuery();
    return query.find(weblogicQL, myProp);
    catch (Exception e)
    e.printStackTrace();
    return null;
    I get a naming exception if I use : RolesHome rh =
    (RolesHome)ic.lookup("RolesHome");
    >
    javax.naming.NameNotFoundException: Unable to resolve 'RolesHome'Resolved: ''
    Unresolved:'RolesHome' ; remaining name
    'RolesHome'
    I get a casting exception if I use: RolesHome rh =(RolesHome)ic.lookup("Roles");
    >
    >
    In my jsp file:
    I have this code
    InitialContext jndiContext = new InitialContext();
    Object obj = jndiContext.lookup("Roles");
    RolesHome rolesHome = (RolesHome) obj;
    list = (ArrayList) rolesHome.findAllActivities(filter, filterParams);
    but the problem is that the home interface does not contain thefindAllActivities
    function. I have already defined rolesHome
    earlier in the code which I want to use for findAllActivities also. I cannot
    cast the bean e.g. RolesBean rolesBean = (
    RolesBean) rolesHome. I do not want to create a new bean as I am alreadyusing
    an old rolesHome. How do I solve this
    problem??? Please do let me know. I am really confused.
    Thanks
    Ronak Parekh

  • Data series / dynamic queries

    Hi,
    I've got the following problem:
    I want to create a stacked bar chart based on dynamic queries. The query I use for the first series is:
    select null link, kw label, sum (volume) value from testview
    where id = to_number(:P18_ID)
    group by kw
    order by kw
    P18_ID is an input field.
    The query works fine and the chart is also ok.
    But if I use this same query for a second series I get an empty svg canvas as result. Even worse: no matter what kind of query I use for the second series I never get a result unless I take the variable P18_ID away from the first query.
    For info: the view testview is based on a table created by a pl/sql function (using pipelined output).
    Any ideas. I really would appreciate a quick answer very much because this is part of a project and we are running out of time because of this error.
    Thanks.

    Hi Andy,
    first of all: thank you very much for your efforts.
    I've tried something like you said before and yes, it works (at least most of the times). The problem is I want to have the option 'show all'. That's why I can't use a' where' clause (because I can't work with 'like ...%' for it would sometimes give wrong results because of ids with the same prefix -> or am I wrong?)
    What I mean is:
    where id like '1'% -> results for item 1 (and 10,11,12,...)
    where id like ' '% -> results for all items
    That's why I want to use a pl/sql function. The function is tested and works fine. But if I try to call it form ApEx it works only if use constants instead of variables or if I have only one series.
    Is there something like a time limit? Like ApEx stops processing if the database isn't answering as fast as expected (because a function is slower than querying a table). I don't really think that could be the answer because it's very little data and I'm using a pipelined function... but perhaps...

  • Tracing queries from abap to a custom database via dblink

    I' m connecting to a database by dblink (name magiap).
    I would like to know if somewhere I can trace all the queries from abap to oracle in this specific session , to dbs ='MAGIAP'.
    For istance, i would like that the query "SELECT "DESPARTY1"
    into :v_DESPARTY1
    FROM "T040PARTY"
    WHERE "CODPARTY" = '305142941' will be stored some where (in a file??).
    I would like that parameters - w_CODPARTY- will be substituted and stored in the trace file with the value (305142941), as shown in the previous
    Here is the piece of code ..(a very short example of course)..
    DATA : dbs LIKE dbcon-con_name,
    v_CODPARTY(15),
    v_DESPARTY1(60).
    data : w_CODPARTY(15) value '305142941'.
    dbs = 'MAGIAP'.
    TRY.
    EXEC SQL.
    CONNECT TO :dbs
    ENDEXEC.
    IF sy-subrc <> 0.
    EXEC SQL.
    CONNECT TO :dbs
    ENDEXEC.
    ENDIF.
    IF sy-subrc <> 0.
    * RAISE err_conn_aea.
    ENDIF.
    EXEC SQL.
    set connection :dbs
    ENDEXEC.
    EXEC SQL .
    SELECT "DESPARTY1"
    into :v_DESPARTY1
    FROM "T040PARTY"
    WHERE "CODPARTY" = :w_CODPARTY
    ENDEXEC.
    IF sy-subrc NE 0.
    * rc = 4.
    ENDIF.
    EXEC SQL.
    DISCONNECT :dbs
    ENDEXEC.
    ENDTRY.

    Hi Silvana,
    The SQL statements have been stored in the SQL Cursor Cache, on the database and they will be available until they have been invalidated. You can access the statements at the 'MAGIAP' side and see the last executed queries in the cache.
    You can access bind variables by query on the V$SQL_BIND_CAPTURE table, also.
    On the other hand, you can activate the trace by the statement, below;
    ALTER SYSTEM SET sql_trace = true SCOPE=MEMORY;
    Then, the sql statements will be available in the usertrace file. Please note that you should execute and investigate all the statements that I noted above, at the remote side. Plus, as far as I know that it is not able to distinguish the records by the "dblink name". You should check all the statements and try to figure out what queries have been executed remotely.
    Best regards,
    Orkun Gedik

  • Trace queries from abap to a custom oracle database via dblink

    I' m
    connecting to a database by dblink (name magiap).
    I
    would like to know if somewhere I can trace all the queries from abap to oracle
    in this specific session , to dbs ='MAGIAP'.
    For istance, i would like that the query
    "SELECT "DESPARTY1"
    into :v_DESPARTY1
    FROM "T040PARTY"
    WHERE "CODPARTY" = '305142941' will
    be stored some where (in a file??).
    I would like that parameters - w_CODPARTY- will be substituted and stored in the trace
    file with the value (305142941), as shown in the previous
    Here
    is the piece of code ..(a very short example of course)..
    DATA : dbs LIKE dbcon-con_name,
    v_CODPARTY(15),
    v_DESPARTY1(60).
    data : w_CODPARTY(15) value '305142941'.
    dbs = 'MAGIAP'.
    TRY.
    EXEC SQL.
    CONNECT TO :dbs
    ENDEXEC.
    IF sy-subrc <> 0.
    EXEC SQL.
    CONNECT TO :dbs
    ENDEXEC.
    ENDIF.
    IF sy-subrc <> 0.
    * RAISE err_conn_aea.
    ENDIF.
    EXEC SQL.
    set connection :dbs
    ENDEXEC.
    EXEC SQL .
    SELECT "DESPARTY1"
    into :v_DESPARTY1
    FROM "T040PARTY"
    WHERE "CODPARTY" =
    :w_CODPARTY
    ENDEXEC.
    IF sy-subrc NE 0.
    * rc = 4.
    ENDIF.
    EXEC SQL.
    DISCONNECT :dbs
    ENDEXEC.
    ENDTRY.

    Hi Silvana,
    The SQL statements have been stored in the SQL Cursor Cache, on the database and they will be available until they have been invalidated. You can access the statements at the 'MAGIAP' side and see the last executed queries in the cache.
    You can access bind variables by query on the V$SQL_BIND_CAPTURE table, also.
    On the other hand, you can activate the trace by the statement, below;
    ALTER SYSTEM SET sql_trace = true SCOPE=MEMORY;
    Then, the sql statements will be available in the usertrace file. Please note that you should execute and investigate all the statements that I noted above, at the remote side. Plus, as far as I know that it is not able to distinguish the records by the "dblink name". You should check all the statements and try to figure out what queries have been executed remotely.
    Best regards,
    Orkun Gedik

  • Dynamic Queries with JSP

    I am developing a search page which should first bring the results sorted by some particular field & then the user should have the option of sorting the results by other field names which are provided in a form list.
    For generating dynamic requests, ? is used in place of parameter. But for some reason it is not working with Order by. Other dynamic queries are working fine. Please let me know the right way to handle it.
    And also if someone can advise a good reference book for dynamic SQL statements in accordance with JSP.
    Thanks for your time.

    Never mind my previous solution. Some success was not perfect, therefore not acceptable. I used a scriplet and the problem is solved!
      <!-- Dynamically build the query -->
        <%
          String sql = "select * from issue_list_view";
          String where = null;
          String param = null;
          // Status
          param = (String)pageContext.getAttribute("status");
          if(param != null && param.compareTo("")!=0)
            where = "status='"+param+"'";
          else
            where = "status not in ('Closed','Duplicate')";
          // Assigned To
          param = (String)pageContext.getAttribute("assign");
          if(param != null && param.compareTo("")!=0)
            if(where.length()>0) {where += " and ";}
            where = "category='"+param+"'";
          // Category
          param = (String)pageContext.getAttribute("category");
          if(param != null && param.compareTo("")!=0)
            if(where.length()>0) {where += " and ";}
            where = "category='"+param+"'";
          // Type
          param = (String)pageContext.getAttribute("type");
          if(param != null && param.compareTo("")!=0)
            if(where.length()>0) {where += " and ";}
            where += "issue_type='"+param+"'";
          // Id
          param = (String)pageContext.getAttribute("id");
          if(param != null && param.compareTo("")!=0)
            if(where.length()>0) {where += " and ";}
            where += "issue_id="+param;
          // Add where clause if needed
          if(where != null) { sql += " where " + where; }
        %>
        <!-- Do the query -->
        <sql:query var="issues" sql="<%=sql%>"/>

  • Dynamic queries best practice

    Hello,
    I want to create a report that the user can use radio buttons to refine. As an example, referring to the apex sample application's Products page, add radio buttons for [>] All prices [>] under $500.
    I think the technique demonstrated for building dynamic query reports (this is a 1.6 tutorial,link to it is here) is the way to do this, but I'm not sure this is the best approach.
    I'm wondering about any design disadvantage. I'd appreciate comment. Also, if there is a working example with source view in the public apex workspaces you are aware of, post a link if there's value beyond the tutorial I mentioned.
    Thank you.
    Albert

    I am using dynamic queries from time to time. Here is a working example:
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    You may have a look.
    Denes Kubicek

  • How to escape apostrophe in Oracle PL/SQL  dynamic queries

    I have an script that receives an string as a parameter, for example:
    @C:/myScript.sql "AXEL";
    @C:/myScript.sql "AXEL DAVID";
    @C:/myScript.sql "o'neal";
    my scripts basically constructs a Parameterized query an execute it. That's all. It works most of the time, except when the parameter contains apostrophes
    DEFINE myparameter = &&1
    myquery := "Select * from myTable where x = :p1";
    EXECUTE IMMEDIATE myquery into results USING myparameter;
    ...When trying the following;
    @C:/myScript.sql "o'neal";
    I get the following error:
    Bind Variable "p1" is NOT DECLARED
    Of course if I change the parameter as "o''neal" It will work, but I will end up with other issues later on, so I would like to know how can I deal with apostrophe on dynamic queries.
    I also tried to use the following:
       myquery := "Select ....  where x = " || Q'#:p1#';
    ...but not working.
    any hint will be appreciated =)
    Edited by: user13679988 on Nov 22, 2012 3:12 PM
    Edited by: user13679988 on Nov 22, 2012 3:38 PM
    Edited by: user13679988 on Nov 22, 2012 3:45 PM

    DUPLICATE THREAD! and WRONG FORUM!
    This forum is for SQL Developer questions only and your question has nothing to do with sql developer. Please mark this question ANSWERED.
    You have already posted this question in the SQL and PL/SQL forum and should continue to use that thread.
    How to replace 2 single quotes to single quote

Maybe you are looking for

  • Report is not getting filtered

    i created a date between prompt , and filters and selected as filter is prompted but while i selecting the date range in dashboard its report is not geting filtered.

  • Macbook pro wont open

    I downloaded Lion, but after successfully installing it and restarting the my MacBook Pro, it wont open anymore. What will I do? Please help.

  • Why can't I use MasterCard securecode on iPad mini

    I can't use MasterCard securecode to pay for items on iPad mini but works fine on android phone

  • Problem in write back function.

    I am trying to implement the write back function. The update button is enabled and it displays an error when clicked. Error: "The system is unable to read the Write Back Template 'dev10'. Please contact your system administrator." following is the xm

  • OTA_DELEGATE_BOOKINGS which column holds the customer's id

    Hi, Can someone tell me which column in OTA_DELEGATE_BOOKINGS table hold the customer's id to identify the classes he registered in. e.g. How do I find out what classes some specific customer have enrolled. e.g. if there's a customer with id=1234 and