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 phoneNo 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,
BenI 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 -
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,
SanjayYour 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
PHi 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
aspSQL> 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> -
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 PMDear 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
-
Windows Vista & Palm Centro 690 not talking to each other
After my other phone went through the wash machine I changed to a this Palm unit. Activated it, came home and installed the sync software, worked fine. Couple of days later tried to sync again, no such luck. I have been working off and on for a co
-
My iPad was upgraded to iOS 8.3 software while plugged in. This morning, the battery is almost dead, and I have a black screen. Not sure the iPad is even charging! Any thoughts on what to do? Thanks.
-
"Error during transfer of tax condition AP4E"
Hi Guys Please help me with the above error log. "error during transfer of tax condition AP4E" I came across this error whiles trying to create an order. How do i resolve this. Cheers.
-
Starting BPM process externally.
Hi, I have created a BPM process and I am able to test it from NWA -> Process repository. But When I am testing from WS Navigator then I am getting an error like-> Web Service returned an error. Fault Code: "(http://schemas.xmlsoap.org/soap/envelope/
-
Macbook Pro 15" 2.3 or 2.6?
Hi y'all! Im going to buy a macbook pro but i dont know which yet, except that i want a 15 inch. I dont think i want to take retina display.. maybe. Anyway. I dont have all the budget in the world, max 2200$us. Im thinking that later i will upgrade b