Replace Views

Hi,
In the Standard "IC_AGENT" role, "Account Identification" work centre, I want to replace Installed Base view with Fact Sheet view.
Please Advice,
Thanks in Advance,
Ponits will be rewarded!!

Hello Anish,
You need to open a component for this account identification in BSP component workbench, then there is this enhance component button which you can use to modify the component. To access runtime repository, just click on Runtime Reporsitory Button.
Hope this helps...
Best Regards,
Yevgen

Similar Messages

  • Help REPLACE view with 3 union

    look at this large view
    I want to modify it to select also Discount2 and Discount3 from c_order table
    I just add one line and I'm getting:
    ORA-01789: query block has incorrect number of result columns
    CREATE OR REPLACE VIEW C_Order_LineTax_v
    AS
    SELECT ol.AD_Client_ID, ol.AD_Org_ID, ol.IsActive, ol.Created, ol.CreatedBy, ol.Updated, ol.UpdatedBy,
    'en_US' AS AD_Language,
    ol.C_Order_ID, ol.C_OrderLine_ID, ol.C_Tax_ID,
    ol.Line,
    ol.QtyOrdered, uom.UOMSymbol,
    COALESCE(p.Name, ol.Description) AS Name, -- main line
    CASE WHEN p.Name IS NOT NULL THEN ol.Description END AS Description, -- second line
    p.DocumentNote, -- third line
    p.UPC, p.SKU, p.Value AS ProductValue,
    ra.Description AS ResourceDescription, -- forth line
    CASE WHEN i.IsDiscountPrinted='Y' THEN ol.PriceList END AS PriceList,
    CASE WHEN i.IsDiscountPrinted='Y' AND ol.PriceList>ol.PriceActual THEN (ol.PriceList-ol.PriceActual)/ol.PriceList*100 END AS Discount,
    ol.Discount2, ol.Discount3,
    ol.PriceActual, ol.LineNetAmt
    FROM C_OrderLine ol
    INNER JOIN C_UOM uom ON (ol.C_UOM_ID=uom.C_UOM_ID)
    INNER JOIN C_Order i ON (ol.C_Order_ID=i.C_Order_ID)
    LEFT OUTER JOIN M_Product p ON (ol.M_PRODUCT_ID=p.M_PRODUCT_ID)
    LEFT OUTER JOIN S_ResourceAssignment ra ON (ol.S_ResourceAssignment_ID=ra.S_ResourceAssignment_ID)
    UNION
    SELECT ol.AD_Client_ID, ol.AD_Org_ID, ol.IsActive, ol.Created, ol.CreatedBy, ol.Updated, ol.UpdatedBy,
    'en_US' AS AD_Language,
    ol.C_Order_ID, ol.C_OrderLine_ID, ol.C_Tax_ID,
    ol.Line+(b.Line/100) AS Line,
    ol.QtyOrdered*b.BOMQty AS QtyInvoiced,
    uom.UOMSymbol,
    p.Name, -- main
    b.Description,
    p.DocumentNote, p.UPC, p.SKU, p.Value AS ProductValue,
    null, null, null, null, null
    FROM M_Product_BOM b -- BOM lines
    INNER JOIN C_OrderLine ol ON (b.M_Product_ID=ol.M_Product_ID)
    INNER JOIN M_Product bp ON (bp.M_Product_ID=ol.M_Product_ID -- BOM Product
    AND bp.IsBOM='Y' AND bp.IsVerified='Y' AND bp.IsInvoicePrintDetails='Y')
    INNER JOIN M_Product p ON (b.M_ProductBOM_ID=p.M_Product_ID) -- BOM line product
    INNER JOIN C_UOM uom ON (p.C_UOM_ID=uom.C_UOM_ID)
    UNION
    SELECT AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
    'en_US', C_Order_ID, null, null,
    null,
    null, null,
    null,
    null, null, null, null, null, null,
    null, null, null, null
    FROM C_Order
    UNION
    SELECT ot.AD_Client_ID, ot.AD_Org_ID, ot.IsActive, ot.Created, ot.CreatedBy, ot.Updated, ot.UpdatedBy,
    'en_US', ot.C_Order_ID, null, ot.C_Tax_ID,
    null,
    null, null,
    t.Name,
    null, null, null, null, null, null,
    null,null, ot.TaxBaseAmt, ot.TaxAmt
    FROM C_OrderTax ot
    INNER JOIN C_Tax t ON (ot.C_Tax_ID=t.C_Tax_ID)

    make sure the columns being null (in 2. or 3. select) correspond to columns of type VARCHAR2 in 1. query
    Otherwise use : to_date(null) or to_number(null)

  • Replaced view in iTunes 8 can I get it back?

    in iTunes 8 is there any way to get back the view button that lets me see album listings in a list view. The one that had the album art on the left and then it lists all the songs in that album. Apple seems to replaced this view with the "grid" view, which I really don't like. I've been trying to google and search apple forum but not sure which words to use.
    Thanks - if any one can point me in the right direction.

    It's now part of the main list view mode. If the album art isn't to the left, there's an option somewhere to make them show up. (I'd give you exacts, but my iTunes is kind of being a brat right now.)

  • Replacing view in UITabBarController

    Hi all,
    I apologise if this has been answered before, but I couldn't find it after a search.
    I have (I think) a very simple problem. I have a UITabBarController, and the 1st view essentially consists of a 'start' button. If this is pressed I want to replace the view with a PageControl (UIScrollView). So in my FirstViewController I have:
    -(IBAction) startButtonPressed{
    [self presentModalViewController:scrollViewController animated:YES];
    This works, but it obscures the tab bar, which I don't want. I guess I should be updating the VC of the tab bar, but I'm not sure how to do this. Anyone have a clue what I'm talking about?
    Cheers!

    Adding another content view to the first controller's view shouldn't affect any of the other view controllers which are under the tab bar. So yes, you're definitely doing something wrong, but it may be hard for me to guess what that might be.
    Are you sure you didn't add the new view to the tab bar controller's view instead of the first controller's view?
    If that's not the problem, my suggestion would be to simplify things by building a separate test bed. For example, start a new project with the Tab Bar Application template. Then add a control to the first view, connect it to an action method in the first view controller, and code the action method like this:
    - (IBAction)myTest {
    UIView *newView = [[UIView alloc] initWithFrame:self.view.frame];
    newView.backgroundColor = [UIColor greenColor];
    [self.view addSubview:newView];
    Run the test bed, activate the button in the first view, then convince yourself that you can get to the second view and back, and that the second view hasn't been changed in any way.
    You should be able to do all of the above in a few minutes. Once that's accomplished, you can go back to your project. You may be able to spot the problem(s) by comparison with the test bed.
    Or, you might just use the test bed as the skeleton for your project, building in small steps and running it after each addition. For example, the first step might be to add animation to the above sample. Or you might start by making a separate nib (File->New File->iPhone OS->User Interfaces->View XIB) for the new view and replacing the above initWithFrame with initWithNibName:bundle:
    If you run the project and debug at every step, you'll always be building onto a working app, which is how I like to code whenever possible (For a big project it's rarely possible to test anything except the skeleton until all the components are ready to come together. But it's often possible to build a test bed for each component).

  • Replace view text under icon screen

    hi
    please my study for change viwe/unviwe text under icon display my phone

    No clue what your issue is or what you were trying to communicate.
    Did you have a question, if so, post in your native language.

  • Replace Materialized View with Flashback?

    I'm building a Data Warehouse with the following:
    1. Tables populated throughout the day using CDC from the Application DB
    2. MVs on those tables to keep a daily snapshot of the tables for reporting.
    3. End users access the data through views with VPD applied, on the MVs
    My systems team would like the solution to use as little storage as possible and currently I effectively have a copy of the app DB in the DW tables and would need another copy in the Daily MVs. (It is an insurance DB, so it is complex with lots of data, > 1.5 TB)
    One way to reduce the storage could be to use flashback to keep a static daily version of the tables, so
    At midnight I'd recreate the views like:
    CREATE OR REPLACE VIEW client
    AS SELECT *
       FROM   client_tab
       AS OF TIMESTAMP (TO_TIMESTAMP(TRUNC(SYSDATE)));This would replace my refresh MV script. The end users would then refer to the client view in their reports
    We would obviously need enough undo to store a days worth of data to ensure the flashback views remain consistent, but this is much less than the space required for a full copy. On a busy day there would be about 1% data change.
    No DDL will occur on the tables during the day
    Is there anything else I should be aware of? Can you let me know if (and why) this would not be a good idea?
    This will run on Oracle 11.2.0.1
    Thanks,
    Ben

    I guess I'm having some trouble visualizing the basic data model...
    In most data warehouses that I've seen in the financial industry, reporting the position/ balance/ etc. at a given date involves scanning a single daily partition of each fact table involved and then hitting dimension tables that may or may not be partitioned (slowly changing dimensions would often have effective and expiration date columns to store the range of time a row was valid for, for example). Year-over-year reporting, then, just has to scan two fact table partitions-- the one for today and the one for a year ago. You may not store every intermediate change if there are potentially hundreds of transactions per account per day, but you'd generally put the end state for a given day in a single partition.
    In one of your updates, it sounded like the 1.5 TB of data was just for the data that constituted end-of-day yesterday plus the 1% of changes made today which would imply that there was at least 15 GB of UNDO generated every day that would need to be applied to make flashback query work. That quantity of UNDO would make me pretty concerned from a performance perspective.
    I would also tend to wager that VPD policies applied to views that are doing flashback query would be problematic. I haven't tried it and haven't really worked through all the testing scenarios in my mind, but I would be somewhat surprised if that didn't introduce some sort of hurdle that you'd have to work through/ work around.
    Justin

  • How to wrap a view in oracle

    Does any one know how to wrap a view in Oracle, I know it is not possible, yet. Are there any third party software to wrap the logic in the view.
    Thanks,
    Sanjay

    Your best bet is to write a view that queries the source tables and contains any necessary business logic
    CREATE VIEW VBASE AS SELECT A.COLUMN_A FROM TABLE_1 A, TABLE_2 B, TABLE_3 C WHERE A.ID = B.ID AND B.ID = C.ID;
    create a view for exposure to the user that queries the base view.
    CREATE VIEW VSECURE AS SELECT COLUMN_B FROM VBASE;
    and grant privileges to VSECURE.
    GRANT SELECT ON VSECURE TO SECURE_USER;
    This will allow the user to see, query, and describe VSECURE without seeing the definition for VBASE.
    The advantage of the this approach is that the query engine can still push predicates down into the base view to optimize the performance or the query where as this is limited with the pipeline function and can become a tuning headache.
    eg.
    SQL> -----------------------------------------
    SQL> -- create some tables
    SQL> -----------------------------------------
    SQL> CREATE TABLE table_1(ID NUMBER, MESSAGE VARCHAR2(100))
    Table created.
    SQL> CREATE TABLE table_2(ID NUMBER, message2 VARCHAR2(100))
    Table created.
    SQL> CREATE TABLE table_3(ID NUMBER, message3 VARCHAR2(100))
    Table created.
    SQL> -----------------------------------------
    SQL> -- populate tables with some data
    SQL> -----------------------------------------
    SQL> INSERT INTO table_1
    SELECT ROWNUM,
    CASE
    WHEN MOD ( ROWNUM, 50 ) = 0 THEN 'HELLO there joe'
    ELSE 'goodbye joe'
    END
    FROM DUAL
    CONNECT BY LEVEL < 1000000
    999999 rows created.
    SQL> INSERT INTO table_2
    SELECT ROWNUM,
    CASE
    WHEN MOD ( ROWNUM, 50 ) = 0 THEN 'how are you joe'
    ELSE 'good to see you joe'
    END
    FROM DUAL
    CONNECT BY LEVEL < 1000000
    999999 rows created.
    SQL> INSERT INTO table_3
    SELECT ROWNUM,
    CASE
    WHEN MOD ( ROWNUM, 50 ) = 0 THEN 'just some data'
    ELSE 'other stuff'
    END
    FROM DUAL
    CONNECT BY LEVEL < 1000000
    999999 rows created.
    SQL> -----------------------------------------
    SQL> --create base view
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE VIEW vbase AS
    SELECT a.MESSAGE,
    c.message3
    FROM table_1 a,
    table_2 b,
    table_3 c
    WHERE a.ID = b.ID
    AND b.ID = c.ID
    View created.
    SQL> -----------------------------------------
    SQL> --create secure view using base view
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE VIEW vsecure AS
    SELECT MESSAGE,
    message3
    FROM vbase
    View created.
    SQL> -----------------------------------------
    SQL> -- create row type for pipeline function
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE TYPE vbase_row
    AS OBJECT
    message varchar2(100),
    message3 varchar2(100)
    Type created.
    SQL> -----------------------------------------
    SQL> -- create table type for pipeline function
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE TYPE vbase_table
    AS TABLE OF vbase_row;
    Type created.
    SQL> -----------------------------------------
    SQL> -- create package
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE PACKAGE pkg_getdata AS
    FUNCTION f_get_vbase
    RETURN vbase_table PIPELINED;
    END;
    Package created.
    SQL> -----------------------------------------
    SQL> -- create package body with pipeline function using same query as vbase
    SQL> -----------------------------------------
    SQL> CREATE OR REPLACE PACKAGE BODY pkg_getdata AS
    FUNCTION f_get_vbase
    RETURN vbase_table PIPELINED IS
    CURSOR cur IS
    SELECT a.MESSAGE,
    c.message3
    FROM table_1 a,
    table_2 b,
    table_3 c
    WHERE a.ID = b.ID
    AND b.ID = c.ID;
    BEGIN
    FOR rec IN cur
    LOOP
    PIPE ROW ( vbase_row ( rec.MESSAGE, rec.message3 ) );
    END LOOP;
    END;
    END pkg_getdata;
    Package body created.
    SQL> -----------------------------------------
    SQL> -- create secure view using pipeline function
    SQL> -----------------------------------------
    SQL> CREATE or replace VIEW vsecure_with_pipe AS
    SELECT *
    FROM TABLE ( pkg_getdata.f_get_vbase ( ) )
    View created.
    SQL> -----------------------------------------
    SQL> -- this would grant select on the 2 views, one with nested view, one with nested pipeline function
    SQL> -----------------------------------------
    SQL> GRANT SELECT ON vsecure TO test_user
    Grant complete.
    SQL> GRANT SELECT ON vsecure_with_pipe TO test_user
    Grant complete.
    SQL> explain plan for
    SELECT *
    FROM vsecure
    WHERE MESSAGE LIKE 'HELLO%'
    Explain complete.
    SQL> SELECT *
    FROM TABLE ( DBMS_XPLAN.display ( ) )
    PLAN_TABLE_OUTPUT
    Plan hash value: 3905984671
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 16939 | 2365K| | 3098 (3)| 00:00:54 |
    |* 1 | HASH JOIN | | 16939 | 2365K| 2120K| 3098 (3)| 00:00:54 |
    |* 2 | HASH JOIN | | 24103 | 1835K| | 993 (5)| 00:00:18 |
    |* 3 | TABLE ACCESS FULL| TABLE_1 | 24102 | 1529K| | 426 (5)| 00:00:08 |
    | 4 | TABLE ACCESS FULL| TABLE_2 | 1175K| 14M| | 559 (3)| 00:00:10 |
    | 5 | TABLE ACCESS FULL | TABLE_3 | 826K| 51M| | 415 (3)| 00:00:08 |
    Predicate Information (identified by operation id):
    1 - access("B"."ID"="C"."ID")
    2 - access("A"."ID"="B"."ID")
    3 - filter("A"."MESSAGE" LIKE 'HELLO%')
    Note
    PLAN_TABLE_OUTPUT
    - dynamic sampling used for this statement
    23 rows selected.
    SQL> -----------------------------------------
    SQL> -- note that the explain plan shows the predicate pushed down into the base view.
    SQL> -----------------------------------------
    SQL> explain plan for
    SELECT count(*)
    FROM vsecure_with_pipe
    WHERE MESSAGE LIKE 'HELLO%'
    Explain complete.
    SQL> SELECT *
    FROM TABLE ( DBMS_XPLAN.display ( ) )
    PLAN_TABLE_OUTPUT
    Plan hash value: 19045890
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 2 | 15 (0)| 00:00:01 |
    | 1 | SORT AGGREGATE | | 1 | 2 | | |
    |* 2 | COLLECTION ITERATOR PICKLER FETCH| F_GET_VBASE | | | | |
    Predicate Information (identified by operation id):
    2 - filter(VALUE(KOKBF$) LIKE 'HELLO%')
    14 rows selected.
    SQL> -----------------------------------------
    SQL> -- note that the filter is applied on the results of the pipeline function
    SQL> -----------------------------------------
    SQL> set timing on
    SQL> SELECT count(*)
    FROM vsecure
    WHERE MESSAGE LIKE 'HELLO%'
    COUNT(*)
    19999
    1 row selected.
    Elapsed: 00:00:01.42
    SQL> SELECT count(*)
    FROM vsecure_with_pipe
    WHERE MESSAGE LIKE 'HELLO%'
    COUNT(*)
    19999
    1 row selected.
    Elapsed: 00:00:04.11
    SQL> -----------------------------------------
    SQL> -- note the difference in the execution times.
    SQL> -----------------------------------------

  • Creating view to get first row for each table !!

    I am having tables(more than 10) which are related using foreign key and primary key relationship.
    Example:
    Table1:
    T1Prim T1Col1 T1Col2
    Table2
    T2For T2Prim T2Col1 T2Col2 T2Col3
    (here T2For will have value same as T1Prim and in my design it has same column name i.e. T1Prim)
    Table3
    T3For T3Prim T3Col1 T3Col2 T3Col3
    (here T3For will have value same as T2Prim)
    and so on.
    The data in the tables is like For table1 there will be one record, for table2 there will be one record and for table 3 there are more than one records.
    Can i view either the first record for each of them or all records from each of them by writing the following view.
    I have written a view like this:
    Create or replace view test (T1Prim,T1Col1, T1Col2,T2Prim,T2Col1 T2Col2, T2Col3, T3Prim,T3Col1, T3Col2, T3Col3)
    As
    Select
    Table1.T1Prim,
    Table1.T1Col1,
    Table1.T1Col2,
    Table2.T2Prim,
    Table2.T2Col1,
    Table2.T2Col2,
    Table2.T2Col3,
    Table3.T3Prim,
    Table3.T3Col1,
    Table3.T3Col2,
    Table3.T3Col3
    From
    Table1,
    Table2,
    Table3
    where
    Table1.Prim = Table2.For
    and Table2.Prim = Table3.For
    When i ran the select statement on the view I am not getting any data. Whereas there is data when select is ran on individual table.
    Can someone please tell me where i am goofing.
    Thanks in the anticipation that i will get some hint to solve this.
    Eagerly waiting for reply.
    Thanks !!

    I mean use a collection :
    Collection Methods
    A collection method is a built-in function or procedure that operates on collections and is called using dot notation. The methods EXISTS, COUNT, LIMIT, FIRST, LAST, PRIOR, NEXT, EXTEND, TRIM, and DELETE help generalize code, make collections easier to use, and make your applications easier to maintain.
    EXISTS, COUNT, LIMIT, FIRST, LAST, PRIOR, and NEXT are functions, which appear as part of an expression. EXTEND, TRIM, and DELETE are procedures, which appear as a statement. EXISTS, PRIOR, NEXT, TRIM, EXTEND, and DELETE take integer parameters. EXISTS, PRIOR, NEXT, and DELETE can also take VARCHAR2 parameters for associative arrays with string keys. EXTEND and TRIM cannot be used with index-by tables.
    For more information, see "Using Collection Methods".
    Syntax
    Text description of the illustration collection_method_call.gif
    Keyword and Parameter Description
    collection_name
    This identifies an index-by table, nested table, or varray previously declared within the current scope.
    COUNT
    COUNT returns the number of elements that a collection currently contains, which is useful because the current size of a collection is not always known. You can use COUNT wherever an integer expression is allowed.
    For varrays, COUNT always equals LAST. For nested tables, normally, COUNT equals LAST. But, if you delete elements from the middle of a nested table, COUNT is smaller than LAST.
    DELETE
    This procedure has three forms. DELETE removes all elements from a collection. DELETE(n) removes the nth element from an index-by table or nested table. If n is null, DELETE(n) does nothing. DELETE(m,n) removes all elements in the range m..n from an index-by table or nested table. If m is larger than n or if m or n is null, DELETE(m,n) does nothing.
    EXISTS
    EXISTS(n) returns TRUE if the nth element in a collection exists. Otherwise, EXISTS(n) returns FALSE. Mainly, you use EXISTS with DELETE to maintain sparse nested tables. You can also use EXISTS to avoid raising an exception when you reference a nonexistent element. When passed an out-of-range subscript, EXISTS returns FALSE instead of raising SUBSCRIPT_OUTSIDE_LIMIT.
    EXTEND
    This procedure has three forms. EXTEND appends one null element to a collection. EXTEND(n) appends n null elements to a collection. EXTEND(n,i) appends n copies of the ith element to a collection. EXTEND operates on the internal size of a collection. So, if EXTEND encounters deleted elements, it includes them in its tally. You cannot use EXTEND with index-by tables.
    FIRST, LAST
    FIRST and LAST return the first and last (smallest and largest) subscript values in a collection. The subscript values are usually integers, but can also be strings for associative arrays. If the collection is empty, FIRST and LAST return NULL. If the collection contains only one element, FIRST and LAST return the same subscript value.
    For varrays, FIRST always returns 1 and LAST always equals COUNT. For nested tables, normally, LAST equals COUNT. But, if you delete elements from the middle of a nested table, LAST is larger than COUNT.
    index
    This is an expression that must yield (or convert implicitly to) an integer in most cases, or a string for an associative array declared with string keys.
    LIMIT
    For nested tables, which have no maximum size, LIMIT returns NULL. For varrays, LIMIT returns the maximum number of elements that a varray can contain (which you must specify in its type definition).
    NEXT, PRIOR
    PRIOR(n) returns the subscript that precedes index n in a collection. NEXT(n) returns the subscript that succeeds index n. If n has no predecessor, PRIOR(n) returns NULL. Likewise, if n has no successor, NEXT(n) returns NULL.
    TRIM
    This procedure has two forms. TRIM removes one element from the end of a collection. TRIM(n) removes n elements from the end of a collection. If n is greater than COUNT, TRIM(n) raises SUBSCRIPT_BEYOND_COUNT. You cannot use TRIM with index-by tables.
    TRIM operates on the internal size of a collection. So, if TRIM encounters deleted elements, it includes them in its tally.
    Usage Notes
    You cannot use collection methods in a SQL statement. If you try, you get a compilation error.
    Only EXISTS can be applied to atomically null collections. If you apply another method to such collections, PL/SQL raises COLLECTION_IS_NULL.
    You can use PRIOR or NEXT to traverse collections indexed by any series of subscripts. For example, you can use PRIOR or NEXT to traverse a nested table from which some elements have been deleted.
    EXTEND operates on the internal size of a collection, which includes deleted elements. You cannot use EXTEND to initialize an atomically null collection. Also, if you impose the NOT NULL constraint on a TABLE or VARRAY type, you cannot apply the first two forms of EXTEND to collections of that type.
    If an element to be deleted does not exist, DELETE simply skips it; no exception is raised. Varrays are dense, so you cannot delete their individual elements.
    PL/SQL keeps placeholders for deleted elements. So, you can replace a deleted element simply by assigning it a new value. However, PL/SQL does not keep placeholders for trimmed elements.
    The amount of memory allocated to a nested table can increase or decrease dynamically. As you delete elements, memory is freed page by page. If you delete the entire table, all the memory is freed.
    In general, do not depend on the interaction between TRIM and DELETE. It is better to treat nested tables like fixed-size arrays and use only DELETE, or to treat them like stacks and use only TRIM and EXTEND.
    Within a subprogram, a collection parameter assumes the properties of the argument bound to it. So, you can apply methods FIRST, LAST, COUNT, and so on to such parameters. For varray parameters, the value of LIMIT is always derived from the parameter type definition, regardless of the parameter mode.
    Examples
    In the following example, you use NEXT to traverse a nested table from which some elements have been deleted:
    i := courses.FIRST; -- get subscript of first element
    WHILE i IS NOT NULL LOOP
    -- do something with courses(i)
    i := courses.NEXT(i); -- get subscript of next element
    END LOOP;
    In the following example, PL/SQL executes the assignment statement only if element i exists:
    IF courses.EXISTS(i) THEN
    courses(i) := new_course;
    END IF;
    The next example shows that you can use FIRST and LAST to specify the lower and upper bounds of a loop range provided each element in that range exists:
    FOR i IN courses.FIRST..courses.LAST LOOP ...
    In the following example, you delete elements 2 through 5 from a nested table:
    courses.DELETE(2, 5);
    In the final example, you use LIMIT to determine if you can add 20 more elements to varray projects:
    IF (projects.COUNT + 20) < projects.LIMIT THEN
    -- add 20 more elements
    Related Topics
    Collections, Functions, Procedures
    http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/13_elems7.htm#33054
    Joel P�rez

  • EA2: ORA-01427 clicking on a view in the navigator

    SQLDev: 1.5.0.52.03
    Java: 1.6.0_04
    Oracle: 9.2.0.7.0
    I'm getting the following error when I click on a view in the navigator pane:
    An error was encountered performing the requested operation:
    ORA-01427: single-row subquery returns more than one row 01427. 00000 - "single-row subquery returns more than one row"I'm not seeing any errors in the shell window.
    After clicking on <OK> in the error dialog, the normal tabs (Columns, Data, Grants, Dependencies, Details, SQL) are displayed, but there is no content in the Columns tab.
    All the other tabs seem to function normally.
    Here is the DDL from the SQL tab
    CREATE OR REPLACE VIEW "SUBSCRIPTIONS"
        "ORDER_ID", "SUNBURST_ORDER_ID", "SIEBEL_ORDER_ID", "ACCOUNT_ID",
        "COMP_ID", "SUBACCOUNT_ID", "START_DATE", "END_DATE", "PULL_DATE",
        "SUBSCRIPTION_TYPE", "PRICE_CLASS", "DESCRIPTION", "SEAT_COUNT",
        "ORDER_DURATION", "CALLBACK_INTERVAL", "UPDATE_DATE", "UPDATE_USERNAME",
        "AFFILIATE"
    AS
        SELECT order_id,
            sunburst_order_id,
            siebel_order_id,
            account_id,
            comp_id,
            subaccount_id,
            start_date,
            end_date,
            pull_date,
            product_id,
            price_class,
            product_name,
            add_users,
            order_duration,
            callback_interval,
            last_mdfy_date,
            last_mdfy_emp,
            affiliate
        FROM csbcrossworlds.subscriptions;We have 15 views in this schema, 3 of them fail this way but the other 12 display the columns just fine. So far I am unable to detect any commonality.
    Any ideas?

    Ok, I think I found the problem. The view in question (SUBSCRIPTIONS) is owned by 'PHILC' and it references a table named 'SUBSCRIPTIONS' owned by 'CSBCROSSWORLDS'. There are two other development schemas that also own tables named 'SUBSCRIPTIONS'.
    I believe the 'Columns' tab is executing the query below. The subquery in this SQL tries to identify the primary key columns for the 'SUBSCRIPTIONS' view in my schema (PHILC):
    SELECT
        c.column_name,
        DECODE(
            data_type,
                'CHAR',      data_type||'('||c.data_length||')',
                'VARCHAR',   data_type||'('||c.data_length||')',
                'VARCHAR2',  data_type||'('||c.data_length||')',
                'NCHAR'   ,  data_type||'('||c.data_length||')',
                'NUMBER'  ,  DECODE(c.data_precision,null,'NUMBER', data_type||'('||c.data_precision||','||c.data_SCALE||')'),
                'NVARCHAR',  data_type||'('||c.data_length||')',
                'NVARCHAR2', data_type||'('||c.data_length||')',
                data_type) data_type,
        DECODE(nullable, 'Y', 'Yes', 'No') nullable,
        c.DATA_DEFAULT,
        column_id,
        com.comments,
        (SELECT 1 FROM all_constraints, all_cons_columns
          WHERE all_constraints.constraint_type = 'P' AND
                all_constraints.constraint_name = all_cons_columns.constraint_name AND
                all_constraints.owner = all_cons_columns.owner AND
                all_cons_columns.table_name = c.table_name AND
                c.column_name = all_cons_columns.column_name) Primary_Key,
        c_update.insertable,
        c_update.updatable,
        c_update.deletable
    FROM
        sys.all_tab_Columns c, sys.all_col_comments com, sys.user_updatable_columns c_update
    WHERE
        c.owner = :OBJECT_OWNER AND
        c.table_name = :OBJECT_NAME AND
        c.table_name = com.table_name AND
        c.owner = com.owner AND
        c.column_name = com.column_name AND
        c_update.column_name = com.column_name AND
        c_update.table_name = com.table_name
    ;Extracting the subquery into this:
    SELECT
        all_constraints.owner,
        all_constraints.table_name,
        all_constraints.constraint_name
    FROM all_constraints, all_cons_columns
    WHERE
        all_constraints.constraint_type = 'P' AND
        all_constraints.constraint_name = all_cons_columns.constraint_name AND
        all_constraints.owner = all_cons_columns.owner and
        all_cons_columns.table_name = 'SUBSCRIPTIONS' and
        'ORDER_ID' = all_cons_columns.column_name;I got this output:
       owner          table_name      constraint_name
    CUTOVER          SUBSCRIPTIONS    SUBSCRIPTIONS_PK
    CROSSWORLDS      SUBSCRIPTIONS    SUBSCRIPTIONS_PK
    CSBCROSSWORLDS   SUBSCRIPTIONS    SUBSCRIPTIONS_PKLooking at the DDL for the view, the row we really want is for owner 'CSBCROSSWORLDS'. Unfortunately, that means having to somehow parse the SQL text to extract the owner name...
    Phil

  • Error while creating parameterise view

    I m getting below error while creating parameterise view
    CREATE OR REPLACE VIEW rdr_le_info_view (v_run_number , v_isin_cob )
    AS
    SELECT l.strategic_le
    ,cun.ucn cunucn
    ,cun.date
    ,cccs.ucn ucn
    ,cccs.agr_num
    FROM strat_le l
    ,ucn_name cun
    ,customer_setup cccs
    WHERE l.gfa_until_dt = '31-dec-9999'
    AND l.glas_until_dt = '31-dec-9999'
    AND l.int_until_dt = '31-dec-9999'
    AND cccs.run_num = v_run_num
    AND cccs.ucn_lead_office = cun.ucn
    AND cun.OID = l.client_oid;
    AND cccs.run_num = v_run_num
    ERROR at line 13:
    ORA-00904: "V_RUN_NUM": invalid identifier
    Plese help me in above.

    Try
    CREATE OR REPLACE VIEW rdr_le_info_view
    AS
    SELECT l.strategic_le
    ,cun.ucn cunucn
    ,cun.date
    ,cccs.ucn ucn
    ,cccs.agr_num
    FROM strat_le l
    ,ucn_name cun
    ,customer_setup cccs
    ,cccs.run_num run_num
    WHERE l.gfa_until_dt = '31-dec-9999'
    AND l.glas_until_dt = '31-dec-9999'
    AND l.int_until_dt = '31-dec-9999'
    AND cccs.ucn_lead_office = cun.ucn
    AND cun.OID = l.client_oid;Then call it like:
    select *
    from rdr_le_info_view
    where run_num = v_run_num;

  • Using a variable in a view?

    I know that it may not be possible to use a variable within a view, but I'm wondering if there isn't a work-around? If there is a single value---pulled from another table---you wish to reuse in a view that does not use dynamic SQL, how do you do so? I've been toying around with WITH statements, but that's getting me nowhere. I'm using 11r2.
    BTW, please do not ask me the standard litany of angry-dba questions (why are you doing this? your database is f*****, RTFM, etc.), this is just for my own curiosity. :)
    Thank you
    Example for demo purposes only (I know it's not syntactically correct):
    variable var_value varchar2(30)
    begin
    select this_is_just_one_value
    int :var_value
    from tableX where column1 = 'BOB';
    end;
    select
    numerous_columns
    from tableY
    where
    column5 = :var_value;

    893968 wrote:
    BTW, please do not ask me the standard litany of angry-dba questions (why are you doing this? your database is f*****, RTFM, etc.), this is just for my own curiosity. :)Why are you doing this? your database is f*****! RTFM! Etc!! ;-)
    SQL is not a procedural language - so you cannot create a view for example that has a parameter signature. E.g. this is possible in a procedural language:
    declare
            cursor c( deptID number ) is
                    select * from emp where deptno = deptID;
    begin
            open c( 1234 ); --// open SQL cursor using a parameter/variable
            --// etc..
            close c;
    end;This is not possible using a SQL object like a view. As a view is not a procedure. So the same approach as the above using SQL (silly example, but do demonstrates the basics):
    // define
    create or replace view emp_view as select * from emp;
    // use
    select * from emp_view where deptno = 1234;The CBO is clever - and it will likely push such a predicate into the emp_view SQL statement.
    To parameterise such a view, is ugly. And should only be considered when dealing with issues such as security and data restrictions. A context is created - this can contain a number of name-values. The view can then use a name-value from the context. Oracle's data dictionary views use this approach.

  • Error: while creating a view - Help needed

    When i am trying to create the view i am getting the error msg as:
    ==>ORA-02070: database does not support operator NLS_CHARSET_DECL_LEN in this context<==
    Please advise in this regard to overcome this issue.
    the view is nothing but
    ================
    create or replace view f_test as
    WITH metadata1 as
    (SELECT DISTINCT * FROM
    (SELECT fre_id, bu_id, eff_from_dt, rec_eff_from_dt,
    rec_eff_to_dt, rec_type, eff_to_dt,
    active_flg, nm_long, nm_short,
    rplcmnt_bu_id, pc_cc_cd, tax_cd, bu_type_cd,
    ledger_cd, internal_id, create_dt,
    last_upd_dt, last_upd_id,
    DENSE_RANK () OVER (PARTITION BY fre_id, bu_id, eff_from_dt
    ORDER BY fre_id, bu_id, eff_from_dt, rec_eff_from_dt) RANK
    FROM AUD_TEST)
    aud1 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD'
    AND rank = '1')      ,
    aud2 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '2'),
    aud3 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '3'),
    aud4 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '4'),
    aud5 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '5'),
    aud6 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '6'),
    aud7 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '7'),
    aud8 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '8'),
    aud9 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '9'),
    aud10 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '10'),
    metadata2 as
    (select aud1.column_name,
    aud1.col_val_new,
    '' col_val_old,
    aud1.fre_id,
    aud1.bu_id,
    aud1.eff_from_dt,
    aud1.rec_eff_from_dt,
    aud1.rec_type,
    aud1.rank
    from aud1
    union all
    select aud2.column_name, DECODE(aud2.rec_type,'D','',aud2.col_val_new) col_val_new, aud1.col_val_new col_val_old, aud2.fre_id, aud2.bu_id,
    aud2.eff_from_dt, aud2.rec_eff_from_dt, aud2.rec_type, aud2.rank
    from aud1, aud2
    where (aud1.fre_id = aud2.fre_id and aud1.bu_id = aud2.bu_id and aud1.eff_from_dt = aud2.eff_from_dt
    and aud1.column_name = aud2.column_name
    and ( (aud2.rec_type = 'C' and nvl(aud1.col_val_new,'^') <> nvl(aud2.col_val_new,'~') ) or
    (aud2.rec_type <> 'C' or (nvl(aud1.col_val_new,'^') <> nvl(aud2.col_val_new,'~'))))
    union all
    select aud3.column_name, DECODE(aud3.rec_type,'D','',aud3.col_val_new) col_val_new, aud2.col_val_new col_val_old, aud3.fre_id, aud3.bu_id,
    aud3.eff_from_dt, aud3.rec_eff_from_dt, aud3.rec_type, aud3.rank
    from aud2, aud3
    where (aud2.fre_id = aud3.fre_id and aud2.bu_id = aud3.bu_id and aud2.eff_from_dt = aud3.eff_from_dt
    and aud2.column_name = aud3.column_name
    and ( (aud3.rec_type = 'C' and nvl(aud2.col_val_new,'^') <> nvl(aud3.col_val_new,'~') ) or
    (aud3.rec_type <> 'C' or (nvl(aud2.col_val_new,'^') <> nvl(aud3.col_val_new,'~'))))
    union all
    select aud4.column_name, DECODE(aud4.rec_type,'D','',aud4.col_val_new) col_val_new, aud3.col_val_new col_val_old, aud4.fre_id, aud4.bu_id,
    aud4.eff_from_dt, aud4.rec_eff_from_dt, aud4.rec_type, aud4.rank
    from aud3, aud4
    where (aud3.fre_id = aud4.fre_id and aud3.bu_id = aud4.bu_id and aud3.eff_from_dt = aud4.eff_from_dt
    and aud3.column_name = aud4.column_name
    and ( (aud4.rec_type = 'C' and nvl(aud3.col_val_new,'^') <> nvl(aud4.col_val_new,'~') ) or
    (aud4.rec_type <> 'C' or (nvl(aud3.col_val_new,'^') <> nvl(aud4.col_val_new,'~'))))
    union all
    select aud5.column_name, DECODE(aud5.rec_type,'D','',aud5.col_val_new) col_val_new, aud4.col_val_new col_val_old, aud5.fre_id, aud5.bu_id,
    aud5.eff_from_dt, aud5.rec_eff_from_dt, aud5.rec_type, aud5.rank
    from aud4, aud5
    where (aud4.fre_id = aud5.fre_id and aud4.bu_id = aud5.bu_id and aud4.eff_from_dt = aud5.eff_from_dt
    and aud4.column_name = aud5.column_name
    and ( (aud5.rec_type = 'C' and nvl(aud4.col_val_new,'^') <> nvl(aud5.col_val_new,'~') ) or
    (aud5.rec_type <> 'C' or (nvl(aud4.col_val_new,'^') <> nvl(aud5.col_val_new,'~'))))
    union all
    select aud6.column_name, DECODE(aud6.rec_type,'D','',aud6.col_val_new) col_val_new, aud5.col_val_new col_val_old, aud6.fre_id, aud6.bu_id,
    aud6.eff_from_dt, aud6.rec_eff_from_dt, aud6.rec_type, aud6.rank
    from aud5, aud6
    where (aud5.fre_id = aud6.fre_id and aud5.bu_id = aud6.bu_id and aud5.eff_from_dt = aud6.eff_from_dt
    and aud5.column_name = aud6.column_name
    and ( (aud6.rec_type = 'C' and nvl(aud5.col_val_new,'^') <> nvl(aud6.col_val_new,'~') ) or
    (aud6.rec_type <> 'C' or (nvl(aud5.col_val_new,'^') <> nvl(aud6.col_val_new,'~'))))
    union all
    select aud7.column_name, DECODE(aud7.rec_type,'D','',aud7.col_val_new) col_val_new, aud6.col_val_new col_val_old, aud7.fre_id, aud7.bu_id,
    aud7.eff_from_dt, aud7.rec_eff_from_dt, aud7.rec_type, aud7.rank
    from aud6, aud7
    where (aud6.fre_id = aud7.fre_id and aud6.bu_id = aud7.bu_id and aud6.eff_from_dt = aud7.eff_from_dt
    and aud6.column_name = aud7.column_name
    and ( (aud7.rec_type = 'C' and nvl(aud6.col_val_new,'^') <> nvl(aud7.col_val_new,'~') ) or
    (aud7.rec_type <> 'C' or (nvl(aud6.col_val_new,'^') <> nvl(aud7.col_val_new,'~'))))
    union all
    select aud8.column_name, DECODE(aud8.rec_type,'D','',aud8.col_val_new) col_val_new, aud7.col_val_new col_val_old, aud8.fre_id, aud8.bu_id,
    aud8.eff_from_dt, aud8.rec_eff_from_dt, aud8.rec_type, aud8.rank
    from aud7, aud8
    where (aud7.fre_id = aud8.fre_id and aud7.bu_id = aud8.bu_id and aud7.eff_from_dt = aud8.eff_from_dt
    and aud7.column_name = aud8.column_name
    and ( (aud8.rec_type = 'C' and nvl(aud7.col_val_new,'^') <> nvl(aud8.col_val_new,'~') ) or
    (aud8.rec_type <>'C' or (nvl(aud7.col_val_new,'^') <> nvl(aud8.col_val_new,'~'))))
    union all
    select aud9.column_name, DECODE(aud9.rec_type,'D','',aud9.col_val_new) col_val_new, aud8.col_val_new col_val_old, aud9.fre_id, aud9.bu_id,
    aud9.eff_from_dt, aud9.rec_eff_from_dt, aud9.rec_type, aud9.rank
    from aud8, aud9
    where (aud8.fre_id = aud9.fre_id and aud8.bu_id = aud9.bu_id and aud8.eff_from_dt = aud9.eff_from_dt
    and aud8.column_name = aud9.column_name
    and ( (aud9.rec_type = 'C' and nvl(aud8.col_val_new,'^') <> nvl(aud9.col_val_new,'~') ) or
    (aud9.rec_type <> 'C' or (nvl(aud8.col_val_new,'^') <> nvl(aud9.col_val_new,'~'))))
    union all
    select aud10.column_name, DECODE(aud10.rec_type,'D','',aud10.col_val_new) col_val_new, aud9.col_val_new col_val_old, aud10.fre_id, aud10.bu_id,
    aud10.eff_from_dt, aud10.rec_eff_from_dt, aud10.rec_type, aud10.rank
    from aud9, aud10
    where (aud9.fre_id = aud10.fre_id and aud9.bu_id = aud10.bu_id and aud9.eff_from_dt = aud10.eff_from_dt
    and aud9.column_name = aud10.column_name
    and ((aud10.rec_type = 'C' and nvl(aud9.col_val_new,'^') <> nvl(aud10.col_val_new,'~') )
    or (aud10.rec_type <> 'C' or (nvl(aud9.col_val_new,'^') <> nvl(aud10.col_val_new,'~'))))
    select * from metadata2
    where (rec_type = 'C' and (col_val_new is not null or col_val_old is not null))
    or (rec_type <> 'C');

    create or replace view frd_bu_test as
    WITH metadata1 as
    (SELECT DISTINCT * FROM
    (SELECT fre_id, bu_id, eff_from_dt, rec_eff_from_dt,
    rec_eff_to_dt, rec_type, eff_to_dt,
    active_flg, nm_long, nm_short,
    rplcmnt_bu_id, pc_cc_cd, tax_cd, bu_type_cd,
    ledger_cd, internal_id, create_dt,
    last_upd_dt, last_upd_id,
    DENSE_RANK () OVER (PARTITION BY fre_id, bu_id, eff_from_dt
    ORDER BY fre_id, bu_id, eff_from_dt, rec_eff_from_dt) RANK
    FROM AUD_TEST)
    aud1 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD'
    AND rank = '1')      ,
    aud2 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '2'),
    aud3 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '3'),
    aud4 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '4'),
    aud5 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '5'),
    aud6 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '6'),
    aud7 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '7'),
    aud8 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '8'),
    aud9 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '9'),
    aud10 AS
    (SELECT column_name,
    DECODE (column_id,
    7, TO_CHAR (eff_to_dt, 'MMDDRRRR'),
    8, active_flg,
    9, nm_long,
    10, nm_short,
    11, rplcmnt_bu_id,
    12, pc_cc_cd,
    13, tax_cd,
    14, bu_type_cd,
    15, ledger_cd) col_val_new,
    '' col_val_old, fre_id, bu_id, eff_from_dt, rec_eff_from_dt, rec_type, rank
    FROM metadata1 m, all_tab_columns u
    WHERE table_name = 'AUD_TEST'
    AND column_name IN
    ('EFF_TO_DT',
    'ACTIVE_FLG',
    'NM_LONG',
    'NM_SHORT',
    'RPLCMNT_BU_ID',
    'PC_CC_CD',
    'TAX_CD',
    'BU_TYPE_CD',
    'LEDGER_CD')
    AND rank = '10'),
    metadata2 as
    (select aud1.column_name,
    aud1.col_val_new,
    '' col_val_old,
    aud1.fre_id,
    aud1.bu_id,
    aud1.eff_from_dt,
    aud1.rec_eff_from_dt,
    aud1.rec_type,
    aud1.rank
    from aud1
    union all
    select aud2.column_name, DECODE(aud2.rec_type,'D','',aud2.col_val_new) col_val_new, aud1.col_val_new col_val_old, aud2.fre_id, aud2.bu_id,
    aud2.eff_from_dt, aud2.rec_eff_from_dt, aud2.rec_type, aud2.rank
    from aud1, aud2
    where (aud1.fre_id = aud2.fre_id and aud1.bu_id = aud2.bu_id and aud1.eff_from_dt = aud2.eff_from_dt
    and aud1.column_name = aud2.column_name
    and ( (aud2.rec_type = 'C' and nvl(aud1.col_val_new,'^') <> nvl(aud2.col_val_new,'~') ) or
    (aud2.rec_type <> 'C' or (nvl(aud1.col_val_new,'^') <> nvl(aud2.col_val_new,'~'))))
    union all
    select aud3.column_name, DECODE(aud3.rec_type,'D','',aud3.col_val_new) col_val_new, aud2.col_val_new col_val_old, aud3.fre_id, aud3.bu_id,
    aud3.eff_from_dt, aud3.rec_eff_from_dt, aud3.rec_type, aud3.rank
    from aud2, aud3
    where (aud2.fre_id = aud3.fre_id and aud2.bu_id = aud3.bu_id and aud2.eff_from_dt = aud3.eff_from_dt
    and aud2.column_name = aud3.column_name
    and ( (aud3.rec_type = 'C' and nvl(aud2.col_val_new,'^') <> nvl(aud3.col_val_new,'~') ) or
    (aud3.rec_type <> 'C' or (nvl(aud2.col_val_new,'^') <> nvl(aud3.col_val_new,'~'))))
    union all
    select aud4.column_name, DECODE(aud4.rec_type,'D','',aud4.col_val_new) col_val_new, aud3.col_val_new col_val_old, aud4.fre_id, aud4.bu_id,
    aud4.eff_from_dt, aud4.rec_eff_from_dt, aud4.rec_type, aud4.rank
    from aud3, aud4
    where (aud3.fre_id = aud4.fre_id and aud3.bu_id = aud4.bu_id and aud3.eff_from_dt = aud4.eff_from_dt
    and aud3.column_name = aud4.column_name
    and ( (aud4.rec_type = 'C' and nvl(aud3.col_val_new,'^') <> nvl(aud4.col_val_new,'~') ) or
    (aud4.rec_type <> 'C' or (nvl(aud3.col_val_new,'^') <> nvl(aud4.col_val_new,'~'))))
    union all
    select aud5.column_name, DECODE(aud5.rec_type,'D','',aud5.col_val_new) col_val_new, aud4.col_val_new col_val_old, aud5.fre_id, aud5.bu_id,
    aud5.eff_from_dt, aud5.rec_eff_from_dt, aud5.rec_type, aud5.rank
    from aud4, aud5
    where (aud4.fre_id = aud5.fre_id and aud4.bu_id = aud5.bu_id and aud4.eff_from_dt = aud5.eff_from_dt
    and aud4.column_name = aud5.column_name
    and ( (aud5.rec_type = 'C' and nvl(aud4.col_val_new,'^') <> nvl(aud5.col_val_new,'~') ) or
    (aud5.rec_type <> 'C' or (nvl(aud4.col_val_new,'^') <> nvl(aud5.col_val_new,'~'))))
    union all
    select aud6.column_name, DECODE(aud6.rec_type,'D','',aud6.col_val_new) col_val_new, aud5.col_val_new col_val_old, aud6.fre_id, aud6.bu_id,
    aud6.eff_from_dt, aud6.rec_eff_from_dt, aud6.rec_type, aud6.rank
    from aud5, aud6
    where (aud5.fre_id = aud6.fre_id and aud5.bu_id = aud6.bu_id and aud5.eff_from_dt = aud6.eff_from_dt
    and aud5.column_name = aud6.column_name
    and ( (aud6.rec_type = 'C' and nvl(aud5.col_val_new,'^') <> nvl(aud6.col_val_new,'~') ) or
    (aud6.rec_type <> 'C' or (nvl(aud5.col_val_new,'^') <> nvl(aud6.col_val_new,'~'))))
    union all
    select aud7.column_name, DECODE(aud7.rec_type,'D','',aud7.col_val_new) col_val_new, aud6.col_val_new col_val_old, aud7.fre_id, aud7.bu_id,
    aud7.eff_from_dt, aud7.rec_eff_from_dt, aud7.rec_type, aud7.rank
    from aud6, aud7
    where (aud6.fre_id = aud7.fre_id and aud6.bu_id = aud7.bu_id and aud6.eff_from_dt = aud7.eff_from_dt
    and aud6.column_name = aud7.column_name
    and ( (aud7.rec_type = 'C' and nvl(aud6.col_val_new,'^') <> nvl(aud7.col_val_new,'~') ) or
    (aud7.rec_type <> 'C' or (nvl(aud6.col_val_new,'^') <> nvl(aud7.col_val_new,'~'))))
    union all
    select aud8.column_name, DECODE(aud8.rec_type,'D','',aud8.col_val_new) col_val_new, aud7.col_val_new col_val_old, aud8.fre_id, aud8.bu_id,
    aud8.eff_from_dt, aud8.rec_eff_from_dt, aud8.rec_type, aud8.rank
    from aud7, aud8
    where (aud7.fre_id = aud8.fre_id and aud7.bu_id = aud8.bu_id and aud7.eff_from_dt = aud8.eff_from_dt
    and aud7.column_name = aud8.column_name
    and ( (aud8.rec_type = 'C' and nvl(aud7.col_val_new,'^') <> nvl(aud8.col_val_new,'~') ) or
    (aud8.rec_type <>'C' or (nvl(aud7.col_val_new,'^') <> nvl(aud8.col_val_new,'~'))))
    union all
    select aud9.column_name, DECODE(aud9.rec_type,'D','',aud9.col_val_new) col_val_new, aud8.col_val_new col_val_old, aud9.fre_id, aud9.bu_id,
    aud9.eff_from_dt, aud9.rec_eff_from_dt, aud9.rec_type, aud9.rank
    from aud8, aud9
    where (aud8.fre_id = aud9.fre_id and aud8.bu_id = aud9.bu_id and aud8.eff_from_dt = aud9.eff_from_dt
    and aud8.column_name = aud9.column_name
    and ( (aud9.rec_type = 'C' and nvl(aud8.col_val_new,'^') <> nvl(aud9.col_val_new,'~') ) or
    (aud9.rec_type <> 'C' or (nvl(aud8.col_val_new,'^') <> nvl(aud9.col_val_new,'~'))))
    union all
    select aud10.column_name, DECODE(aud10.rec_type,'D','',aud10.col_val_new) col_val_new, aud9.col_val_new col_val_old, aud10.fre_id, aud10.bu_id,
    aud10.eff_from_dt, aud10.rec_eff_from_dt, aud10.rec_type, aud10.rank
    from aud9, aud10
    where (aud9.fre_id = aud10.fre_id and aud9.bu_id = aud10.bu_id and aud9.eff_from_dt = aud10.eff_from_dt
    and aud9.column_name = aud10.column_name
    and ((aud10.rec_type = 'C' and nvl(aud9.col_val_new,'^') <> nvl(aud10.col_val_new,'~') )
    or (aud10.rec_type <> 'C' or (nvl(aud9.col_val_new,'^') <> nvl(aud10.col_val_new,'~'))))
    select * from metadata2
    where (rec_type = 'C' and (col_val_new is not null or col_val_old is not null))
    or (rec_type <> 'C');

  • Apex 4.0 - Can see view data in SQL*Plus but no data in Object Browser

    Hi There,
    I have just started using Apex 4.o and migrated some apps. I have an issue with a report, but see the same issue with Object browser, which is easier to describe.
    I have a view:
    create or replace view V_PLJ_USERDEF_CODES (
             CODE_SET_ID,
             CODE_SET_CODE,
             CODE_SET_DESC,
             CODE_ID,
             CODE_SYS_CODE,
             CODE_VALUE,
             CODE_DESC,
             DISPLAY_SEQ,
             DISPLAY_FLAG,
             LANGUAGE_CODE) as
      select CS.CODE_SET_ID,
             CS.CODE_SET_CODE,
             CS.CODE_SET_DESC,
             C.CODE_ID,
             C.CODE_SYS_CODE,
             C.CODE_VALUE,
             C.CODE_DESC,
             C.DISPLAY_SEQ,
             C.DISPLAY_FLAG,
             C.LANGUAGE_CODE
        from PLJ_CODES C,
             PLJ_CODE_SETS CS
       where C.CODE_SET_ID         = CS.CODE_SET_ID
         and CS.CODE_SET_TYPE_CODE = SYS_CONTEXT('PLJUMPSTART','C_USERDEF_CODE_SET');This returns data in SQL*Plus, but no data in Object Browser OR report region based on this view.
    Workspace parses in the same schema as tested in SQL*Plus.
    If, in report, I swap out view, and use underlying table - no problem.
    Any ideas -
    thanks
    P

    Hi all,
    Thanks for getting back so promptly.
    It just seems weird to me, as tables are just fine, but not views.
    In the underlying schema:
    SQL> sho user
    USER is "ICSREPORTING"
    SQL> select count(*) from plj_codes;
      COUNT(*)
           107
    SQL> select count(*) from v_plj_userdef_codes;
      COUNT(*)
            29And in the APEX schema
    SQL> sho user
    USER is "APEX_040000"
    SQL> select count(*) from icsreporting.plj_codes;
    select count(*) from icsreporting.plj_codes
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> select count(*) from icsreporting.v_plj_userdef_codes;
    select count(*) from icsreporting.v_plj_userdef_codes
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL>However, in SQL browser, I can see the data in PLJ_CODES but in V_PLJ_USERDEF_CODES, just the message "This view has no data". Indeed, it is like this for all views.
    I even explicitly granted access to APEX_040000 but no good.
    In fact, I would like to know more about how Apex gets access to do DML against the underlying parsing schema(s).
    This is a little frustrating though. It worked just fine in lots of apps in version 2.1 to 3.2
    Am I missing something
    paul
    p.s I knew there would be a question about the context, but I had already checked that. :)
    Edited by: PJ on Nov 19, 2010 4:09 AM

  • Can we update column in view with some operation

    can we maipulate column of a view containing any arthimetic operation
    if yes, pls explain me some example
    asp

    SQL> create or replace view emp_view as select e.*, (sal + nvl(comm, 0)) total from scott.emp e ;
    View created.
    SQL> desc emp_view
    Name                                      Null?    Type
    EMPNO                                     NOT NULL NUMBER(4)
    ENAME                                              VARCHAR2(10)
    JOB                                                VARCHAR2(9)
    MGR                                                NUMBER(4)
    HIREDATE                                           DATE
    SAL                                                NUMBER(7,2)
    COMM                                               NUMBER(7,2)
    DEPTNO                                             NUMBER(2)
    TOTAL                                              NUMBER
    SQL> update emp_view set hiredate = hiredate + (1/24) ;
    14 rows updated.
    SQL> update emp_view set total = total * 1.5 ;
    update emp_view set total = total * 1.5
    ERROR at line 1:
    ORA-01733: virtual column not allowed here
    SQL>

  • Update data in view

    I created a view in program unit (procedure).
    when new form instance I call this
    and created a block base with this view
    it has detail block
    I have one column chk varchar2(1)
    it is a check box
    I need when I check this box chk will be 'Y'
    I mean update the view . if I check the box 4 records all the records chk must be 'Y' in view
    I write a code on-update trigger;
    if :challan1_view.chk = 'Y' then
    update challan_view
    set chk ='Y';
    end if;but not saving CHK ='Y'
    Edited by: Kame on Aug 17, 2009 11:15 PM

    Dear Francois
    Answers: 1. this is a procedure
    PROCEDURE so_view IS
    BEGIN
    ---------- Creating First view----------------
    declare
         V_COMMAND  varchar2(5000);
    begin
    V_COMMAND := 'Create or replace view Challan_view as
               select  qry1.dcno,qry1.dcdate,qry1.customername,qry1.perscode,qry1.persname,qry1.commission,qry1.netrate,
            qry1.itemcode,qry1.itemname,qry1.itemunit,qry1.dcrate,qry1.dcqty,qry1.disc_pers,qry1.disc_amount,
            qry1.tax_perc,qry1.tax_amount,qry1.netamount,qry1.chk,
            qry2.idcqty, nvl(qry1.dcqty,0) - nvl(qry2.idcqty,0) Remaining
    from
    (select a.dcno,a.dcdate,a.customername,a.perscode,a.persname,a.commission,a.netrate,
            b.itemcode,b.itemname,b.itemunit,b.dcrate,b.dcqty,b.disc_pers,b.disc_amount,
            b.tax_perc,b.tax_amount,b.netamount,b.chk
            from masterdc a , dc_detail b
            where a.dcno = b.dcno) qry1,
    (select b.dcno, b.dcdate,b.itemcode,b.itemname,
            b.dcqty IDCQTY
            from masterinv a , inv_detail b
            where a.invno = b.invno) qry2
    where qry1.dcno = qry2.dcno (+)
    --and qry1.itemcode = qry2.itemcode(+)
    and nvl(qry2.idcqty,0) < nvl(qry1.dcqty,0)';
    FORMS_DDL(V_COMMAND);
    end;
    declare
         V_COM  varchar2(5000);
    begin
    V_COM := 'Create or replace view challan1_view as
                select dcno,dcdate,customername,perscode,persname,commission,netrate from challan_view
              group by dcno,dcdate,customername,perscode,persname,commission,netrate';
    FORMS_DDL(V_COM);
    end;
    END;Answer 2:
    I have check in list of table/views its created.
    SQL> select * from tab;
    TNAME                          TABTYPE  CLUSTERID
    CHALLAN1_VIEW                  VIEW
    CHALLAN_VIEW                   VIEW
    CITY                           TABLE
    CUSTOMER                       TABLE
    DEPT                           TABLE
    DETAILDC_VIEW                  VIEW
    DETAILSO_VIEW                  VIEW
    ITEM                           TABLE
    MASTERDC_VIEW                  VIEW
    MASTERSO_VIEW                  VIEW
    SOVIEW_DETAIL                  VIEW
    USERS                          TABLE
    SQL> after that I created a block from views.

Maybe you are looking for