REPORT: dynamic where

Hello

problem:

According to the page I land current page 'WHERE' of the SQL query condition in gear changes.

For example:

If I come to page 1, my sql is:

[code]

Select col1, col2

FROM table1

where col3 'SOMETHING' <>and

COL 4 = "FOO";

[/ code]

If I come to page 2, my

My sql is:

[code]

Select col1, col2

FROM table1

where col3 <>'SOMETHING ';

[/ code]

the report columns have links, and I think it will be a lot of pain to redo everything only programmatically.

Question:

is there a way to achieve such a feature?

Hello

Select query SQL as Source and white PLSQL code as shown in the example that you have found.

After creating the report, it will look like this

Concerning

Tags: Database

Similar Questions

  • Interactive report dynamic where clause

    Hello!

    Is it possible that a report interactive sql source can have a where clause clause that is built dynamically?

    Marc

    Marc:

    You could empty the record-ID set in a collection of the APEX.
    Change the IR query to add a join for this collection. Something like

    select c1, c2,c3...
    from  main_tab a, apex_collections b
    where b.name='RECORD_IDS'
    and a.pk_col=b.to_number(c001)
    

    More about APEX collections can be found at
    http://download.Oracle.com/docs/CD/E14373_01/AppDev.32/e11838/advnc.htm#insertedID4

    CITY

  • Dynamic where clause in SP

    Hi experts,

    I use Oracle Database 10 g Enterprise Edition Release 10.2.0.3.0 - 64 bit

    I have to write a MS which has dynamic where clouse this where to accept the form of the value of the parameter.

    This is my SP and Eroor.
    CREATE OR REPLACE
    PACKAGE PKG_EW_PROJection_QUERY AS
    
      PROCEDURE PR_PROJECTION_QUERY(PD_AS_OF_DATE IN DATE,
                                   PV_MEMBER_CODE IN VARCHAR2,
                                   PV_TYPE_LIST   IN VARCHAR2,    -- here i have different input paramater and depending on this my where where clouse will be change 
                                                                                   -- so my input string look like('abd,cfd,fgh') if it abd then my where condition different and if cfd
                                                                                    -- then  where condition different.
                                   CUR_PROJECTION_OUT  OUT      SYS_REFCURSOR);
                                   
                                   
    END PKG_EW_PROJection_QUERY;
    
    /
    
    CREATE OR REPLACE
    PACKAGE BODY PKG_EW_PROJection_QUERY AS
    
      PROCEDURE PR_PROJECTION_QUERY(PD_AS_OF_DATE IN DATE,
                                   PV_MEMBER_CODE IN VARCHAR2,
                                   PV_TYPE_LIST   IN VARCHAR2,
                                   CUR_PROJECTION_OUT  OUT      SYS_REFCURSOR)
                                   IS
               sql_stmt varchar2(1000);
    BEGIN 
             IF PV_TYPE_LIST LIKE '%GRA-PRINCIPAL%' THEN
    
          SQL_STMT := 'SELECT P.FIC_MIS_DATE, P.V_MEMBER_CODE, P.V_TXN_DESC, P.N_AMOUNT_LCY FROM FCT_PROJECTIONS P, DIM_TXN_DESC D';
          SQL_STMT := SQL_STMT ||' WHERE P.N_RESOURCE_GROUP_NBR=D.N_RESOURCE_NBR AND P.V_TXN_CODE=D.V_TXN_CODE';
          SQL_STMT := SQL_STMT ||' AND P.FIC_MIS_DATE ='||PD_AS_OF_DATE;
          SQL_STMT := SQL_STMT ||' AND V_MEMBER_CODE='||PV_MEMBER_CODE;
          SQL_STMT := SQL_STMT ||' AND D.V_BRANCH_CODE=' ||'GRA';
          SQL_STMT := SQL_STMT ||' AND D.V_TXN_CODE='||'REP'; 
          end if; 
        
           OPEN CUR_PROJECTION_OUT FOR  SQL_STMT;
                                          
    END PR_PROJECTION_QUERY;
                                   
    END PKG_EW_PROJection_QUERY;
    
    and i got below error
    
    Error starting at line 2 in command:
    EXEC PKG_EW_PROJection_QUERY.PR_PROJECTION_QUERY('31-JUL-2011','PAK','GRA-PRINCIPAL',:CUR_POS_OUT)
    Error report:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01003: no statement parsed
    00604. 00000 -  "error occurred at recursive SQL level %s"
    *Cause:    An error occurred while processing a recursive SQL statement
               (a statement applying to internal dictionary tables).
    *Action:   If the situation described in the next error on the stack
               can be corrected, do so; otherwise contact Oracle Support.
    CUR_POS_OUT
    ------
    can you please let me know where I hurt m.

    If you need more information please let me know.

    Thank you
    Ritesh.

    You do not have anything in your example that requires dynamic sql.

    Consider this:

    declare
       cursor my_cur (val1 varchar2, val2 number) is
            select column1, column 2
            from table1
            where column1 = val1
                and column2 = val2;
    begin
         if your_condition then
             --process the cursor declared above
             for cur_rec in my_cur ('ABC', 12)
             loop
                  do something
             end loop;
          end if;
    end;
    

    In your example, you're just concatenate strings together, which could be managed with variables.

  • Complete the table 2D-report dynamically

    Hello

    is there a way to create a Table 2D mode report dynamically with the method "Data.GetChannels"? ".

    I've got this starting position:

    -in the Dataportal are up to 5 groups (maybe less...)

    -in each group is a channel 'speed' and 'time', which has only a single value

    No, I want a 2D in report Table that looks like this

















    Time 100 200 Group 3-time-value
    Speed 25 30 String value in a group 3
    more channels 1 2 String value in a group 3

    I can do this by using textlists for each col, but the handling is very bad if a channelname Exchange.

    An alternative workaround blend groups temporarily to one group, but I hope there is a way to use the Data.GetChannels("Group*/Speed") command.

    Greetings,

    Martin Kozlowski

    Hi Martin,

    In general I would discourage you to use channels with only 1 value.  In almost all cases, it is best to store this information as a property of the channel or group.

    You can still get something like what you ask to leave your 1 value existing channels if you create columns of table which is of type "Expression", set up the table to be in a display of 'Horizontal' alignment, the value of the number of scale of lines the right number of groups and use expressions like these :

    @Data.Root.ChannelGroups (D2TabRow). Channels ("Time"). Values (1) @

    @@str (Data.Root.ChannelGroups (D2TabRow). Channels ("Noise"). ("Values (1), d.dd") @ «»

    Brad Turpin

    Tiara Product Support Engineer

    National Instruments

  • Need help with dynamic where clause.

    Hello world.  I'm kind of a novice with PL/SQL, so please be patient with me.  I am building a web application using Weblogic Oracle 11 g and Oracle database.

    To make a long story short, I need to generate the complex dynamic WHERE clause.  I don't know what will be the name of the column or the operator of comparison or the value will be until the moment of execution.

    I'm not 100% certain, but I think I need to use dynamic SQL statements.  Unless there is a better way to do it.

    I'm sure that using dynamic SQL opens me up to SQL injection attacks if I use simple string concatenation.  I would like to use bind variable if possible.

    In any case, it seems like trying to build a dynamic where clause does not seem to work as I want it would be...

    bv1 := 'colA = 5 and colB >= 9';
    
    query_str := 'SELECT * FROM view WHERE :bv1';
    
    OPEN CUR FOR query_str USING bv1;
    

    The code above pours out when I try to run it.

    Is there a way to build dynamic where the provisions without the use of concatenation of simple string that leaves me open to attacks by SQL injection?

    Thank you

    Hello.  I have read briefly upward on things, you suggested, but it seems a bit abstract for me since I was a novice.

    Can you give us an explanation or an example of how to use it to accomplish what I need to do?

    Do ypu really plan create a query with a WHERE clause that contains a predicate for all possible columns?

    Variable bind offer performance when the same query is executed several times with different values for bind variables.

    Select * from emp where empno =: v_empno

    After the first run Oracle will always be this query in the library cache. The next running can use the version of the cache even if the bind value is different.

    Select * from emp where empno =: v_empno;

    Select * from emp where ename =: v_ename;

    Select * from emp where sal =: v_sal;

    Each one is a DIFFERENT query. Yes - each of them uses a variable binding, but queries are different.

    So, if your username select EMPNO, an '=', and a value from the first query can be executed. But the next time that the user can select the ENAME column so that 'stored' first request may not be used given that the query does not match.

    The third time your user selects SAL so none of the first two queries can be used in the library cache. The use of bind variables gives performance during the SAME QUERY is used multiple times with DIFFERENT values for the variable binding. Oracle is not to analyze the hard query everything simply because the VALUE is different.

    So bind variables do not help you if most of the queries were completely DIFFERENT sets of predicates. And SYS_CONTEXT will not help either since that simply provides a way to define binds the values of the variables.

    Just for the simple example above, there are at least SIX possible combinations of columns that could choose your user name: empno, ename, sal, empno ename, empno & sal, ename & sal

  • dynamic where clause ofa

    Dear all,

    I have a problem in the dynamic where clause in the OPS.

    I have a VO query as below:

    SELECT desc, ccuid, containid, XXXTMP conainline

    I'll put whereclause as below:

    VO.setwhereclause ("containid '101' =" + "order by containline desc")

    so the question is request forms as below:

    SELECT desc, ccuid, containid, XXXTMP conainline

    (where containid = '101' containline desc order) -query gives question, adding the command from the inside of the caliper

    Ideally, order by clause should come outside of the Stirrup.

    so, how do I do order by clause order side where clasue or how do I remove the stand before the where clause. So I need the query as below:

    SELECT desc, ccuid, containid, XXXTMP conainline

    (where containid = '101' containline desc order)

    SELECT desc, ccuid, containid, conainline from XXXTMP where containid = '101' containline desc order

    or

    SELECT desc, ccuid, containid, XXXTMP conainline

    (where containid = '101') order by containline desc

    Thank you

    Hello

    Solution 1-

    You can use "setOrderByClause (containline desc);" so that it will get out of Where clause.

    Solution 2-

    Instead of dynamically add Whereclause, you can bind the variable as below-

    Query in VO-

    SELECT desc, ccuid, containid, conainline from XXXTMP where containid =: 1 containline desc order


    In VOImpl-

    public void initQuery (String variable)

    {

    clearCache();

    setMaxFetchSize(-1);

    setWhereClause (null);

    setWhereClauseParams (null);

    setWhereClauseParam (0, variable);

    executeQuery();

    }

    Vall of this VOImpl method, and pass the variable value. It will work according to your requirement.

    Thank you

    Kone

  • Very Urgent: Setting dynamic where clause for Popup list VO

    Hello world


    It is a very urgent requirement please help as soon as possible.


    I have a custom page in iSupplier. I created two supplier site, number of PO fields.

    Site of beg - choice of Message and PO number - Message LOV of entry


    I have a named VO under xxisupplier.oracle.apps.pos.home.poplist.server for site begging and xxisupplier.oracle.apps.pos.home.lov.server for PO number.

    I have joined these two VO AM homepage.




    Now the question is

    1. I want to restrict these VO vendor_id-based so I'll put dynamically where clause for these two VO of in my CO


    VO SITE PROVIDER QUERY


    SELECT POVs.vendor_site_code site, pov.vendor_id
    OF po_vendors pov, povs po_vendor_sites_all
    WHERE pov.vendor_id = povs.vendor_id
    AND TRUNC (povs.inactive_date) IS NULL


    PO NUMBER LOV QUERY VO


    SELECT DISTINCT ai.invoice_num, ai.vendor_id, ai.invoice_date, poh.segment1
    AI ap_invoices_all,.
    help ap_invoice_distributions_all,
    po_headers_all poh,
    po_distributions_all pda,
    Al ap_lookup_codes
    WHERE aid.po_distribution_id = pda.po_distribution_id
    AND ai.invoice_id = aid.invoice_id
    AND poh.po_header_id = pda.po_header_id
    AND ai.invoice_type_lookup_code = al.lookup_code
    AND al.lookup_type = 'INVOICE TYPE'


    I am creating where cluase as below in CO



    If (vendor_id1! = null)
    {
    System.out.println ("vendor_id:" + vendor_id1);
    OAViewObjectImpl vo = (OAViewObjectImpl) am.findViewObject ("PO_LOV_VO");
    if(vo!=null)
    {
    vo.clearCache ();
    VO. Reset();
    System.out.println ("inside IN. VO:" + vendor_id1);
    vo.setWhereClause (null);
    vo.setWhereClause ("vendor_id =: 1");
    vo.setWhereClauseParams (null);
    vo.setWhereClauseParam(0,vendor_id1);
    vo.setOrderByClause ("invoice_date DESC");
    String INVQRY = vo.getQuery ();
    System.out.println ("INVQRY:" + INVQRY);
    vo.executeQuery ();
    VO. First();
    System.out.println ("after the query appear" + vo.getRowCount ());
    }

    OAViewObjectImpl sitevo1 = (OAViewObjectImpl) am.findViewObject ("SUPPLIER_SITE_VO1");
    if(sitevo1!=null)
    {
    sitevo1.clearcache ();
    sitevo1. Reset();
    System.out.println ("Interior site:" + vendor_id1);
    sitevo1.setWhereClause (null);
    sitevo1.setWhereClause ("vendor_id =: 1");
    sitevo1.setWhereClauseParams (null);
    sitevo1.setWhereClauseParam(0,vendor_id1);
    String SITEQRY = sitevo1.getQuery ();
    System.out.println ("SITEQRY:" + SITEQRY);
    sitevo1. ExecuteQuery();
    sitevo1. First();
    System.out.println ("after the query appear" + sitevo1.getRowCount ());
    }



    Here he works for the purchase order number but the where cluase does not work for Supplier Site. Please help as soon as possible.


    2 and also if supplier site to return multiple values then this field should show as messagechoice. If it returns a single value, then it should be the style text message
    How can I achieve this.



    Thank you
    CSK

    Try

    vo.setWhereClause ("IN vendor_id (" + vendor_id_qry + ")" ");

    vendor_id_qry is the query that retrieves the list of provider IDS. You don't need to put the vendor column id as whereClauseParam unless you want to have IN the clause in your query of VO and pass the list as 1,2,3 values to the parameter.

    Thank you
    Shree

  • report form, where certain elements of the form received values.

    Hi, Hello:

    I have a question that maybe stupid, but boring for me. I need to provide a report form, where certain elements of the form have been given values automatically, and these elements (display only) are supposed to show some values in the form automatically.

    I used the shape of the APEX with report. The update and delete worked well. But I can't display the automatic values when inserting. By default, APEX insert form makes each null element. I tried to give the value of two items: P5212_USERKEY, P5212_DAILY_VER_DATE with the process before header, after the header, after regions and footer and of calculation or in values of these two elements of the branch if user hit create button (submit). It never worked the two elements always display null value and when I load, I got "ORA-01400: cannot insert NULL into ("TBSBI".» "" "DAILYVERPRODNOTE '." " TAKE') ", because I put in place the constraint in the database that these two columns should not be null.

    Could anyone help on this? any suggestion would be appreciated.

    Sam

    If you have performed these 'Display' values only they can by default does not save session state. To access the elements of the page always returns null. Have you changed the "Save Session State" option to "Yes"?

  • Go to dynamic WHERE the condition in the slider accordingly.

    Hi all

    I am facing a problem with the cursor with dynamic WHERE condition in a function.

    Here's the FUNCTION:
    CREATE OR REPLACE FUNCTION EXCEPTION_MERGE(TABLE_NAME IN VARCHAR2, TAB_NAME IN VARCHAR2)
    RETURN VARCHAr2
    IS
    stmt_tabcols VARCHAR2(32767);
    v_columnname VARCHAR2(32767);
    CURSOR C1 IS 
    SELECT 'A.'||A.COLUMN_NAME ||' = '|| 'B.'||B.COLUMN_NAME COLUMN_NAME 
    FROM 
    (
    SELECT COLUMN_ID, COLUMN_NAME 
    FROM USER_TAB_COLUMNS 
    WHERE TABLE_NAME  = TABLE_NAME 
    AND COLUMN_NAME NOT IN ('ERROR_TAB_ID','ERROR_LOAD_DATE')
    ) A, 
    (
    SELECT COLUMN_ID, COLUMN_NAME 
    FROM USER_TAB_COLUMNS 
    WHERE TABLE_NAME = TAB_NAME
    ) B 
    WHERE A.COLUMN_ID = B.COLUMN_ID;
    BEGIN
    
    
    FOR TABCOL IN C1
    LOOP
        stmt_tabcols := stmt_tabcols ||TABCOL.COLUMN_NAME||',';
        
    END LOOP;
        stmt_tabcols := RTRIM(stmt_tabcols, ',');
        RETURN stmt_tabcols;
    END;
    SELECT EXCEPTION_MERGE('WC_W_TEST_FS','WC_W_TEST_FS_GBL') FROM DUAL;
    She throws, below error:
    ORA-06502 : PL/SQL : Numeric or value error : character string buffer too small
    If I REPLACE TABLE_NAME table_name with hard coded values, it works fine. Can someone look at the code and let me know the question.

    Published by: ace_friends22 on Sep 9, 2012 13:08

    The first function TABLE_NAME parameter has the same name as the column of USER_TAB_COLUMNS...
    Change the names of the parameters to say nom_table_p...

    Concerning

    Etbin

  • Set the name of server report dynamically at run time

    Hi guru,.

    I called reports of the forms that I hardcode the name of report server in my code.
    Is there no alternative to set the server name of report dynamically at run time, is how to find the name of the report server and that in through my code as a parameter.


    can you give some examples of codes... Thank you

    One way that we usually followed before was to store the name of the report server in other tables in the database, then choose this name whenever we want to run a report.

    In this way, it is easy even if there is no change in the name of the server.

  • How to change the title of the report dynamically?

    Hello
    I need to change the title of the report dynamically. The title of the report must contain the value of a particular column in the report.

    ex:
    col1 - col2
    ----------------
    123 - abcd

    Title of the report should be report123

    Thank you

    According to the title, simply specify Report@1. That should do it. Another way would be to add the text Report@1 (add a space between the @1 and report if you wish) in the view of the narration and move it to the top. @1 means Column1.

    Thank you!

  • Dynamic where clause of user defined reports

    Hello everyone,

    Is there a way to make / calculate a where clause clause in a user defined report according to the value of some bind variables?
    I am trying to remove where the terms of my application if the binding variable is not defined.
    previously, I did something as
    AND tab.column = nvl (: colum_bin, tab.column)

    but there are problems in implementation plans.

    Stone

    Sure that you can not, but how about you to rewrite the NVL in

    OR: colum_bin IS NULL

    Hope that helps,
    K.

  • Is it possible to create links to re - run dynamically, where the URL changes for each contact?

    Hello world

    Wanted to understand a better approach on how to take the links that are dynamic, can be stored in the contact name field, and then convert on redirect links when sending an email. Does anyone do this?

    We have a use case where we want to send one every day by e-mail, but every time we send, change URL, and of course, we want to track clicks on URLS.

    All suggestions are appriciated.

    Thank you

    Amit Pandya

    The URL must define documents / web pages where the customer can read most relevent information to update their interest. The URL can be in CMS (Content Management System) or CRM (Customer Relationship Management) system. In both cases, the goal is to serve the most relevant information by email.

    Have already tried mergers field, and of course, it does not work.

    Also, ask yourself if it can be done by using the API, before put us the effort in the development of programs to generate direct emails and re-links used API.

    Another option.

    If someone has done this, would appriciate some clarification.

  • Dynamic WHERE Clause with multiple ORs

    I need to build a dynamic SQL statement such as the clause WHERE looks / works as follows:

    WHERE x LIKE '%1% ' OR LIKE '%2% ' x OR x LIKE '%3%...

    I can do the above, no problem, but I wonder if there is a better way?

    Thank you

    Mark

    Hi, Mark,.

    You should not need dynamic SQL for that.

    For example, if you are still interested in substrings of characters suingle, and you get entry as a unique string called str (e.g. '123' it which means you want to find the rows where x contains '1', '2' or 3'), so you could say:

    ...

    WHERE (x REGEXP_LIKE

    , '[' || str || ']'

    )

    I hope that answers your question.
    If not, post a small example data (CREATE TABLE and INSERT statements), a few entries and also post the desired results of each input given the same data.
    Explain, using specific examples, how you get these results from these data.
    Always say what version of Oracle you are using (for example, 11.2.0.2.0).

    See the FAQ forum: https://forums.oracle.com/message/9362002#9362002

  • Construction of a dynamic Where clause:

    Hi experts,

    In my environment real time in the java code for a statement select query they they add dynamically to the place where clause and retrieve the data using hybernet. I want to do it in PL/SQ


    (1) is it possible?

    (2) how can I do this

    (3) can provide you with the example of document or for example for this one. Please help me

    >
    In my environment real time in the java code for a statement select query they they add dynamically to the place where clause and retrieve the data using hybernet. I want to do it in PL/SQ

    (1) is it possible?
    >
    Non - Oracle can not recover the data using hybernet.
    >
    (2) how can I do this
    >
    You can't - see response to #1 above
    >
    (3) can provide you with the example of document or for example for this one. Please help me
    >
    Not until give you an example of a document or an example of what you speak again.

Maybe you are looking for

  • I want to search in the address bar

    I have the new firefox 43, when I type things in the bar recipient, my most used web sites pop up at the top and I press down arrow once and get the website, I want, but now article 1 is always the search option, I don't don't need or want it to be t

  • Cannot hide the welcome message

    I just installed Thunderbird for the first time. The welcome message is supported half of the space of the message box. I can't find a way to hide. Is it possible to hide/reject the welcome message?Thank you!

  • Skype does not allow me to send messages to a discussion group

    I am at a loss here, there is no explanation as to why this should be the case. Whenever I have send a message using my computer, in a newsgroup, each message is considered "not recovered". I see people typing, but my messages don't want out. Now, he

  • HP Deskjet 2541: The printer cable

    Hi, I need a longer cord (the one that connects from the printer to the computer). The one supplied with the printer is only about 18 ". I need at least 3 feet long cord. (USB)

  • Z10 Z10 ILA BlackBerry does not display the name of the caller of the stored contacts.

    My Z10 does not display the names of the callers stored in contacts with a prefix or area code. For example, an incoming call on contact JOHN SMITH, whose number is stored as + 44 7976 667668 shows not her name but just 07976 667668, but if the numbe