Adding query to the view

Hi,
I'll appreciate your advice regarding the following:
I am using a View which consists of several UNION statements.
for example:
create or replace view VI_TEST
as
select name,lname from Test1
union all
select name,lname from Test2
The questions is: if I am getting a new table, Test3, and want to include it in VI_TEST view - do I have any option (using PL/SQL or other) to make this addition incrementally? (not doing "create or replace view" again but adding the query of Test3)
Thanks

Here's the main idea. Hope you get the gist:
-- create some tables and data:
SQL> create table test_1 as select 'test_1' data from dual
Table created.
SQL> create table test_2 as select 'test_2' data from dual
Table created.
-- the pipelined function
SQL> create or replace function view_pipe return sys.dbms_debug_vc2coll pipelined
as
  data_col sys.dbms_debug_vc2coll;
begin
  for c in (select * from user_tables where table_name like 'TEST_%') loop
    execute immediate 'select * from ' || c.table_name bulk collect into data_col;
    for i in 1..data_col.count loop
     pipe row(data_col(i));
    end loop;
  end loop;
  return;
end view_pipe;
Function created.
-- a view based on the pipelined function
SQL> create or replace view v_myview as select substr(column_value,1,7) my_data from table(view_pipe)
View created.
SQL> select * from v_myview
MY_DATA
test_1
test_2
2 rows selected.
-- add another »entity«
SQL> create table test_3 as select 'test_3' data from dual
Table created.
-- data is appended in orginal view:
SQL> select * from v_myview
MY_DATA
test_1
test_2
test_3

Similar Messages

  • View and the query for the view giving different datasets

    I have a view created with the below syntax.
    CREATE OR REPLACE FORCE VIEW vw_name (/*column names*/ )
    AS SELECT /*column names*/ from tables
    When I execute the query with which the view is constructed , I m getting different data set which contains 4690 rows
    and when I exeute the view I m getting dataset which contains only 4657 rows.
    Can you please explain why the differnce in count when the source for both is the same.

    Can you please explain why the differnce in count when the source for both is the same.Answer should be one of the following
    1. The two query are not same
    2. The table data has been modified
    3. You are seeing at the wrong thing (manual error)

  • Issue in attaching dynamic Query to the View Object

    Hi,
    We are having a View Object attached to the JRAD page.
    The View object is build thru as Expert mode. There is no any CDATA
    SQLQUERY stored in the VO.xml file.
    We are building the query dynamically and attaching it to the VO in
    RUNTIME.
    The code is as below
    // getFcstQuery() is method used to return the dynamic query
    String query = getFcstQuery();
    // Setting the Query to View Object
    getViewDef().setQuery(query);
    setQuery(query);
    The JRAD page has sorting option on 5 columns. so when a sorting is
    done the data are interchanged between the clients.
    For example how the query will be build id
    Say for the first user the query will be as
    "select ename,eno,dno from emp where eno=1 "
    for the second user the query may be
    "select ename,eno,dno from emp where eno=2 "
    Now if both the user hit the sorting on any of the column the data is
    interchagned between this both users.
    Please provide solution if possible.
    Thanks in advance
    Balamohan

    Hi Steve,
    We are using 5 tables in building the query.
    Say,
    1) summary
    2) transactions
    3) transactions_history
    4) rules
    5) rules_temp
    but only 2 tables are used at a time
    for read only we are using
    summary table
    for edit only mode we are using
    1) transactions and
    2) rules
    tables
    for edit and recalculate mode we are using
    1) transactions and
    2) rules_temp
    tables
    for one more condition we are using
    1) transactions_history and
    2) rules
    tables
    From all the above combination we are getting 5 columns. All the columns are defined the above combination tables. So using the same region. based on the conditions the combination of tables will change.
    Becoz of this we are building the query dynamically.
    Thanks
    Balamohan

  • Problem in Adding Field in the View

    Hi Friends,
            I want to add one field in the view of Interaction Center Webclient.
    I copied the view to the Custom BSP and when i try to Add the attribute in context node the Required Attribute is not available in BOL Entity.Please Help me How to Proceed this.
    Thanks & Regards,
    Ashok.

    Hi,
    Create ITAB as follows:
    Fetch all the data from all the columns SME001 to SME016 in the respective columns in internal table itab.
    Make use of field-symbol to add the value of the corresponding columns as follows:-
    <FS1> as line type of ITAB
    <fs2> type any.
    Assume period selected is 007
    LOOP AT ITAB ASSIGNING <FS1>
    DO.
    IF PERIOD = 000.
    exit.
    ENDIF.
    Concatenate 'SME' period into LV_VARIABLE.
    Assign component LV_VARIABLE of structure <FS1>
    to <FS2>.
    if <FS2> is assigned.
    sum = sum + <FS2>
    endif.
    period = period - 1.
    ENDDO.
    ENDLOOP.
    So now sum will contain the sum of the values of SME001 to SME007.
    I hope it is clear.
    Regards,
    Ankur Parab

  • Adding Query in the Roles

    Hi,
    I am having arroung 40-50 roles defined based on the various authorization levels.
    Whenever we make a new query and want to give access to these roles, we go and add the query manually in all the roles (RRMX -> Select the quey -> Add in Role) and give authorization of the query in PFCG.
    Is there any way to give access of the the query to all the roles and setting the values for authorization object.
    Regards
    Ramesh.

    Ramesh,
    I would assign all of the queries to one role and then assign that role to all of the users. You would then keep the other data driven authorizations separate in the original 40-50 roles and remove the queries. This is much easier to maintain. Hope this helps.
    Regards,
    Keith

  • Adding Query in the Favorites

    Hi All,
          How can I add queries to favorites, so that it will execute in Analyzer not in the Web. I am able to add the queries in favorites but the are not executing in the Analyzer... Also I tried to create a role and add queries in that... Even that did not work...
    Regards,
    Vinay K.

    Hi Neelam,
            I want to do it for queries not workbooks... Is there any way to do that?
    Thanks for the reply...
    Vinay.

  • Changing the query on a view object

    I have a view object right now, based on an entity. It is the default view object, so that means the query in the view object is straight forward, it grabs all of the attributes from the table. And there is no WHERE clause.
    In reality I only want to show a finite set of rows from my table. Every time a record is changed/edited in this entity and committed, a new row in the database is created with the same information (I'm using CreateWithParams) except for a few columns.
    I actually don't really have update on this table, just creation of new rows. But to the user, I want it to 'look' like they are editing something in the table.
    Example:
    12, 11:32,Thompson, 60 (the user edits this information in an adf table, and a new row is created in the db)
    12, 11:55, Thompson, 75
    I have a timestamp (see above) field in the database that is used as part of my primary key, so that I know which record is the latest.
    When the VO query is run, I want the user to only see the latest row from the db.
    12, 11:55, Thompson, 75
    So...
    I went to my VO, and I changed the WHERE query to add this:
    where t1.TimeStamp = (Select MAX(t2.TimeStamp) FROM rcl.x t2 where t1.uid = t2.uid);
    Now, this isn't a mysql/sql question. There's actually a better query that I'd rather run, but the VO editor doesn't allow me to change the query itself....
    When I save the new WHERE to my VO, run my page again, I get the expected result (showing me only the latest records).
    However, when I try and sort on the table in which my data is displayed, I am now getting ORDER BY errors.
    I don't want my VO to be read-only sql based. I want to be able to update my table, so I have my VO running off of the entity.
    Why doesn't the VO allow me to change the query itself? (Like do a subquery, instead of having my where clause do the work)
    Why are order by errors being thrown when I sort on my adf table after changing the where clause in my view?
    Hopefully I wasn't too convoluted in the explanation of my problem..
    Thanks in advance,
    Joel

    HI Joe,
    Regarding your problem you can do one of the following tasks:
    1- easily to tuning on your view object, I mean in the tuning page of the view you can set that only return 1 record or 2-3 record fetch not all the record.
    in the order by you will order by the timestamp field and descending.
    2- you can order by the timestamp descending and in the where clause only set the rownum<2 (will return the last record) you can also set rownum<5 and get the 4 last record etc.
    3-editing the view query in the expert mode is not advised at all because of many consequences that you will face.
    4- maybe it is not bat that you add a readonly view for the table you mentioned and every time you unpdate the entity just re-execute the read-only view.( this method maybe is good maybe is not it depends on your business logic)
    Regards.
    Edited by: Amir Khanof on Sep 3, 2010 11:11 PM

  • Running a query in a View Designer results in an error, but running the same query in a Query window works

    Hi everyone,
    Just as my title says, I have a query which I've written in a query window and it works perfectly.
    But when I try to add the query code into the view designer, it throws a Syntax error.
    Error in ON clause near '('.Unable to parse query text.
    Also, when running the query from the view designer (pressing red exclamation mark) I get a different error.
    SQL Execution Error.Executed SQL statement: SELECT Sku, ParentSku, UPC, ...Error Source: .Net SqlClient Data ProviderError Message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
    Has anyone else experienced this and is there any workaround?
    I have tried to create the view with T-SQL (CREATE VIEW etc.), but when opening it in the view designer I get the error from the 1st image.
    Thank you,
    Radu

    Hi Radu,
    Yes, I have faced similar issue. I had a View and it was working totally fine but when once I opened it in via right click - View Design, it was giving parse error.
    Cause is that Query designer parse and executes the query without error but the way View designer works, it can't parse it.
    Later I ignored View desinger and just used T-SQL like CREATE/ALTER view.
    Workaround is to do right click on View - Script View as - CREATE To/ ATER To.
    Regarding Timeout error, again the issue with View designer which couldn't execute query in there and ended up with timeout error.
    If your SELECT query and SELECT * FROM YourView works fine in Query designer, you are good to go.
    Similar threads:
    View with errors still saved, and still works...
    Parsing error when creating view
    -Vaibhav Chaudhari

  • Encapsulating a query in a view with "parameters"

    I have a complex query using analytic functions and an inline view, something like:
    select * from (
    select a, b, c, row_number() over (partition by x, order by y) rn
    where b like 'XXX%'
    where rn = 1;
    (The actual query is a little more complex, but that's the idea). This query performs very well.
    As the query is of some general use, I'd like to package it up. However, the 'XXX%' pattern will vary with each use.
    If I try to make a view v which is the query minus the XXX% where clause, the optimiser cannot merge the where clause and the view in a query like
    select * from v where b like 'XXX%'
    This doesn't surprise me too much - merging like that is going to be hard (if indeed it's possible at all!) As a result, the query using the view is significantly slower.
    Is there any way of making my original query reusable? For PL/SQL, I can use a function returning a REF CURSOR and taking the pattern as a parameter - but I need to use this from SQL.
    I could write a pipelined function and then do select * from table(my_fn('XXX%')). However, this is in 8i, where I don't have that option. Also, for a pipelined function, I'd need to define a record type and an associated table type - what seems like quite a lot of code for what is conceptually pretty simple.
    Have I missed any obvious options? I can live with the pipelined function and "no way until 9i" - but only as a general answer. For my current specific issue, that's equivalent to "you can't do this".
    I thought of using SYS_CONTEXT, but if I understand correctly, I can only use that in PL/SQL, as I can't set the context outside of an authorised package. Is that right, or is there a way I could use contexts? (Hmm, I need to be able to use the query from SQ, but I could probably execute a PL/SQL procedure before running the query, to set things up - does that help?)
    Thanks for any suggestions.
    Paul.

    SYS_CONTEXT would work, as would package global variables.
    I once wrote an example about this (though with TABLE function but for your case the principle stays the same) which you may find here:
    Re: TABLE FUNCTION - Using database view - send parameters to the function.
    hth, michael

  • Keep the record in the view object if deletion failed.

    I have a view object which is based on the entity object, when I am trying to delete a row it failed because it has a child record associate with. I know the row is not delete from the database, but the record is deleted fromt the view.
    How to keep the record in the View object if delete failed?

    Hi,
    the row is not delete from the database,refresh the view . re-execute query and the view show the row

  • Performace problem on the views of original table

    I have views built on original table. After versioning the original table, my view becomes the view on a view. I have experienced performance problem with the query again the view built on my original table.
    Help!
    My e-mail is [email protected]
    Ashley

    Vaibhav Tiwari wrote:
    Hi Johannes,
    >
    > Seems the problem is with your IE. If you are using IE8 or 9, try to run the application in compatibility mode.
    >
    > To do that use the compability mode button given besides the address bar.
    >
    > Regards,
    > Vaibhav
    Why would you assume the problem is Internet Explorer.  The poster stated that the problem occurs in both IE and Firefox: "the problems occurs in both, IE and Firefox"
    I would think that something on the server side, as suggested is the more likely candidate.  Is there anything the WDDOMODIFYVIEW at all related to the table?  Are there any property bindings to the table that could effect the display?

  • Different query for same view showing on different page as list view web part

    Hi all,
    If you have three pages and want to add Documents library as list view web part to these three pages with different query (Programmatically), Do you need to create three different views for Documents library or it is possible to have different query when
    I add the list view web part to the page?
    thanks and appreciate all kind of advice.

    When you add a List View Web Part to a page, SharePoint actually copies the selected view query into the Web Part itself. For example:
    You create a custom view on a list called "Mede71's View" and you configure it only show the Title column
    You add a List View Web Part to a page and update the settings to use the "Mede71's View"
    You go back to your list and change "Mede71's View" and add the "Modified Date" column
    Your List View Web Part will not reflect this change because in step 2 the Query from the view was copied into the List View Web Part
    When you programmatically add the List View Web Part, you can either assign it to an existing view or supply the query directly. If you want to instruct users to be able to add their own web parts pointing to those views in the future, I would recommend
    creating the views first.
    Dimitri Ayrapetov (MCSE: SharePoint)

  • Passing an argument in the SQL Query of a View Object

    Hi,
    It is possible that this question has been asked before, however I have searched for a half an hour in the forums and couldn't find a solution.
    I am also new to using JDeveloper and ADF. Here's the situation:
    I am developing an application that doesn't have to do anything else then displaying data from a database. Pretty straightforward actually.
    Now I have made a vew pages with several collapsible panels (af:showDetailHeader) and have setup the datasources (or so I thought).
    All that remains is:
    - drag & drop a view object, from the application module that I created, onto the collabsible panels, so a child element gets created which displays data from the database.
    - hack the layout so it looks like I want it to.
    The problem that I have is the following:
    I am using a 'User'-class that contains values I need when quering the database.
    That User-object is part of a user-session.
    What I want, for example, is to use the 'getPersonId()' function of that User-object and pass the argument to a SQL-query of a certain view-object.
    The query would become something like:
    'SELECT * FROM people WHERE people.personId = :someNumber'.
    Now I've read some stuff about variable binding, which is complemented by something like (backing bean code):
    getDBTransaction().getRootApplicationModule().getACertainViewObject().setWhereClauseParameter(1, user.getPersonId());
    The examples I have found that might match my wishes are not using business components, but EJB's. I am having difficulty with understanding the 'how'-part of variable binding.
    Also, I do not know enough of ADF to be able to create a situation like:
    'User loads page, collapsible panel 1 is fully shown, the others are undisclosed.'
    (meaning, that for panel1 a query has been executed.)
    'User clicks on collapsible panel 2 which triggers a backingbean that somehow retrieves data from a view object'.
    I would appreciate any help that somebody can give.
    If it is not too much of a problem, please provide code snippets in case you have a solution. I am new to ADF :(.
    -edit
    I am using JDeveloper 10.1.3.3.0 in case that is of any importance.
    Message was edited by:
    Hugo Boog

    Hello Stijn,
    I didn't think about a referenced bean rule in the faces-config.
    I added it right away and I am now able to set parameters of a View-object, not using a page button and before the page loads. You made my day!
    In case anyone ever reads this post again, the summary of how to generate a table based on a View-object using dynamic parameters.:
    1a: Go to faces-config.xml -> Overview tab'
    1b: Go to the menuitem "Referenced Beans"
    1c: Click on 'new' and select the existing bean you want to access data from and input a name. In this example I use name="user"
    2: Create a View-object using the wizard.
    2a: Specify the query you want in the menuitem 'SQL Statement'.
    Add the 'parameters' you want to. You will have something like:
    "SELECT * FROM someTable WHERE table.columnname LIKE :someArgument".
    - hint: if you want the result to become something like:
    "SELECT * FROM someTable WHERE table.columnname LIKE '%someArgument%'" then you have to add the '%'-characters in your code itself (read: someClass.setParameter("%" + someArgument);).
    2b: In the menuitem 'Bind Variables' you have to add the variables you are referring to in the query. If you look at the query in 2a, then you have to add a variable with name "someArgument".
    2c: Add the View-object to a Application Module (create one if nessecairy).
    3a: Open a .jsp(x) file. Drag the View-object created in step 2 from the 'Data Controls'-pane to the page.
    3b: Click on the '+' of the View-object in the 'Data Controls'-pane and open 'Operations' and drag 'ExecuteWithParams' to your page as a button.
    3c: We do not want to use a button, the action has to be executed immediatly. So In the page source remove the lines that were created after dropping 'ExecuteWithParams'.
    3d: Right-click on the page and select "Go to Page Definition".
    3e: Go to the action id that is called 'ExecuteWithParams#', where # is a number.
    Change the id to something useful.
    3f: Change the NDValue so it corresponds with the value you want.
    Example:
    <action id="getAddressData" IterBinding="AddressesView1Iterator"
    InstanceName="MyHRServiceModuleDataControl.AddressView1"
    DataControl="MyHRServiceModuleDataControl" RequiresUpdateModel="true" Action="95">
    <NamedData NDName="someArgument" NDType="java.lang.String"
    NDValue="#{user.personId}"/>
    </action>
    Note: It is possible to use the value of a Backing Bean in NDValue.
    Note 2: user is the bean I referred to in the faces-config.xml!
    3g: Under the executables item, add an 'invokeAction' to pass the parameter to the View-object before your JSP-file loads:
    <executables>
    <invokeAction Binds="getAddressData"
    id="loadAddressDataOfPersonIdInSession"
    Refresh="prepareModel"/>
    Thank Stijn Haus for this :)

  • How to change the view criteria at run time for af:query

    Hi,
    I've a usecase where I need to change the view criteria of the af:query at run time.
    Use case:
    =======
    1) Consider a check box (Show Emps Under Dept 10) in the query panel when user selects and clicks 'Search' button should show the employees under dept 10. If user searches without selecting the check box, the results should show all the employees in all the departments.
    2) I need to have a check box always in the query panel. Its mandatory.
    The way I implemented:
    ==============
    1) Created a transient variable 'Show Emps Under Dept 10' in the EmployeeVO and also created a bind variable bind_DeptNo.
    2) Create a view criteria 'AllEmployees' which has only the transient attribute as the view criteria item and whose value set to 'false' by default.
    3) Created another view criteria 'EmpUnderDept' which has 'DepartmentId' as the view criteria item and whose value set to the bind variable 'bind_DeptNo'.
    4) Dropped the view criteria 'EmpUnderDept' as the 'af:query' panel in the jspx page.
    5) Overridden the queryListener as '#{EmpBean.empSearch}'
    6) Has the below code in the empSearch method as below. When user selects the check box, applying the other criteria 'EmpUnderDept' and setting the bind variable to '10'.
    public void empSearch(QueryEvent queryEvent) {
    // Add event code here...
    QueryDescriptor queryDesc = (QueryDescriptor) queryEvent.getDescriptor();
    ConjunctionCriterion conCrit = queryDesc.getConjunctionCriterion();
    List<Criterion> criterionList = conCrit.getCriterionList();
    List criterionValues = new ArrayList();
    Object criteriaValue = null;
    int criteriaNo = 0;
    DCBindingContainer bc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    FacesContext facesContext = FacesContext.getCurrentInstance();
    for (Criterion criterion : criterionList) {
    AttributeDescriptor attrDescriptor = ((AttributeCriterion)criterion).getAttribute();
    System.out.println("============== attrDescriptor.getName() =================== " + attrDescriptor.getName());
    criteriaValue = ((AttributeCriterion)criterion).getValues().get(0);
    if(criteriaNo==0) {
    Boolean val = (Boolean) ((AttributeCriterion)criterion).getValues().get(0);
    if (val.equals(true)) {
    OperationBinding method = (OperationBinding) ADFUtil.findOperation("ExecuteWithParams");
    if(method!=null) {
    Map params = method.getParamsMap();
    //params.put(key, value)
    method.getParamsMap().put("bind_DeptId", 10L);
    method.execute();
    ADFUtil.invokeMethodExpression( "#{bindings.EmpUnderDeptCriteiaQuery.processQuery}", queryEvent);
    } else {
    //ADFUtil.invokeEL("#{bindings.ExecuteWithParams.execute}");
    ADFUtil.invokeMethodExpression( "#{bindings.AllEmployeesCriteriaQuery.processQuery}", queryEvent);
    But this approach is not working and its always showing all the employees in all the departments.
    Please let me know if there is a way to change the view criteria at run time depending on the values set at run time for one of the view criteria items.
    JDev version am using is '11.1.1.5'
    Thanks,
    Lakshman

    Hi Shay,
    It worked for me without overriding the executeQuery() method in the ViewImpl.java.
    Instead of creating 2 view criteria, I created only one which has both transient variable and the DepartmentId = <bind_DeptId>. With the above code, it worked properly. Now I am using only one view criteria.
    Thank you.

  • UPDATING the query in materialized view

    Hi,
    i have a little doubt in Materialized view. i created a materialized view and log with the following query,
    create table test_mv (a number ,b number )
    alter table test_mv add constraint t_pk primary key ( a );
    insert into test_mv values (1,2);
    insert into test_mv values(2,2);
    insert into test_mv values(3,2);
    insert into test_mv values(4,2);
    insert into test_mv values(5,2);
    commit;
    CREATE MATERIALIZED VIEW LOG ON test_mv
    WITH SEQUENCE, ROWID
    *(a,b)*
    INCLUDING NEW VALUES;
    CREATE MATERIALIZED VIEW product_sales_mv
    ENABLE QUERY REWRITE
    AS SELECT  b  from test_mv;
    Now i want to update the query in the MV as 'Select a from test_mv' . for that i tried with
    *'ALTER MATERIALIZED VIEW product_sales_mv AS SELECT a from test_mv;'*
    But it throwing error,
    Error starting at line 5 in command:
    alter  MATERIALIZED VIEW product_sales_mv   AS SELECT  b  from test_mv
    Error report:
    SQL Error: ORA-00933: SQL command not properly ended
    +00933. 00000 - "SQL command not properly ended"+
    *Cause:+   
    *Action:+
    i guess i am doing wrong. kindly help me here. i want to update it without drop and recreate.
    thanks,
    Jeevanand.Ke

    Hi Jeeva,
    No. you cannot add or drop columns to the materialized view using the ALTER Statement.
    To Change the Structure of the view , drop and re-create the materialized view.
    To Alter a materialized view log, You can use the ALTER MATERIALIZED VIEW LOG. By this,
    You can add new columns to a materialized view log.
    ALTER MATERIALIZED VIEW LOG ON sggi_mrps.emp ADD(deptno);Thanks,
    Shankar
    Edited by: Shankar Viji on Aug 24, 2012 2:11 AM

Maybe you are looking for

  • I want use tally accounting software in mac book pro

    i want use tally accounting software in mac book pro

  • Tablspace used size in mb

    hii everybody, i have script to check tablespace usage and it is working fine but the problem is just used space is showing in '% ' i want used space in 'MB'.can anybody help me,how i get used space in MB? the script and its output is shown below,you

  • Ezvpn client on router to windows vpn server

    Hi is it possible to connect cisco router using ezvpn to windows 2008r2 server? i spend a lot of time and got no success. i'm trying to connect cisco 881g using ezvpn to windows vpn server (RRAS) usign pre-shared key. or i should try to connect in an

  • Lenovo G500s laptop monitor doesnt recover from power saver mode

    Hii everybody, i have been using this G500s laptop for an year or so...recently my laptop has started showing troubles with the screen saver or the power saver that comes by if i dont use my laptop for few mins..! when i dont use my laptop it goes to

  • SortedSet

    Hello. I need some help. I have to store some data (type : object) in sortedset, but I have no idea on how to implement it. In my object, it has a parameter unique ID in type double. and I would like it sorted based on this unique ID. Could anyone te