HANA Studio rev.74 - performance in calc view with union of many sources
Hi,
Windows 7 32 bit, 4GB system memory, Intel Core Duo 2.26Ghz, HANA studio rev 74.
Maintaining a graphical calculation view where first node is union of 30 calculation views each with 150 columns. Maintenance of the view is terribly slow almost to the point of unusable as I add sources to the union, leading to a consideration of remodelling the requirement with a scripted view (or breaking down into smaller sets of graphical calculation views) to work around the sluggish response.
As well as building the view for development purposes I'm considering longer term maintenance options where I cannot guarantee system specs of the supporting developer.
Does anyone else have experience of such sluggish Studio performance with a graphical calculation view using many large view sources?
Is there any theoretical limit to the number of sources in a union?
Cheers,
JP.
Hi Jon-Paul,
sorry for going off topic, but...
if there's still an issue with the appliance (on CAL?), doesn't it flow over to the client? i have the client SP80 installed, but until i get the confirmation that the server i'm connecting to is 'production' ready i can't really take the full advantage of the upgraded client as i don't see any significant point of using client 80 with server 74, but it sounds like you would want to make it work, nevertheless.
to me, yellow is still yellow even though it doesn't really stand for anything.
good luck and let us know your test results,
greg
Similar Messages
-
HANA Studio rev 70 - "Server Not compatible"
I have a rev 70 HANA Developer instance on Amazon AWS and HANA Studio 70. Under the Content folder there is a "Server not compatible" item (and I cannot create any content items).
Any ideas?
Server version info:
HDB version info:
version: 1.00.70.00.386119
branch: NewDB100_REL
git hash: not set
git merge time: not set
weekstone: 0000.00.0
compile date: 2013-11-29 15:58:05
compile host: ld7270.wdf.sap.corp
compile type: opt
HANA Studio info:
SAP HANA Studio
Version: 1.0.7000
Build id: 386119
Downloaded from: SAP | HANA Developer EditionHello William,
I am using Win 64 bit version OS and when i tried to restart the HANA Studio, it worked.
So you can also try it.
Wkr,
Debabrata -
Call a Graphical Calc view with input Parameters from a Script Based Calc View
Hi All.
I am trying to call a graphical calculation view with input parameters from a script based calculation view as below but getting syntax error:
SESSION_SAMPLE = SELECT SESSION_CREATE_DATE,SHA256,CA_MEASURE
FROM "_SYS_BIC"."WILDFIRE/CV_SESSION_SAMPLE"
WITH PARAMETERS ('PLACEHOLDER' = ('$$IP_START_DATE$$',:START_DATE),
'PLACEHOLDER' = ('$$IP_END_DATE$$',:END_DATE));
START_DATE and END_DATE are input parameters of the script based calculation view.
Can anyone please help me with the correct syntax for accomplishing this?
Thanks,
GouthamHi Gautham,
One more option what i would like you to try is the below option , here i have just changed the order of passing nothing else.
SESSION_SAMPLE = SELECT SESSION_CREATE_DATE,SHA256,CA_MEASURE
FROM "_SYS_BIC"."WILDFIRE/CV_SESSION_SAMPLE"
('PLACEHOLDER' = ('$$IP_END_DATE$$','$$END_DATE$$'),
'PLACEHOLDER' = ('$$IP_START_DATE$$','$$START_DATE$$'))
Regards,
Vinoth -
Report which concatenates 13 views with union all running slowly
Oracle 8.1.7 windows 2000 server
I am trying to improve the performance of a report which is comprised of 13 views.
When I run each of the views individually, the total run time for the views is less than 5 minutes. When I run the report, it takes 28 minutes.
Can anyone suggest why the extra time is being taken?
To reiterate:
select a,b from c; (executes in 10 seconds)
select d, e from f (executes in 3 seconds)
select x, y from z (executes in 1 minute)
total runs time = 5 minutes
However,
select a,b from c
union all
select d, e from f
union all
select x, y from z (executes in 28 minutes)
The execution plans do not change between the report and the indiividual views. Views are being concatenated with union all so no sorting is taking place
Many thanks,
Jason Parker.
Edited by: jclparker on Feb 18, 2009 4:26 AM
Edited by: jclparker on Feb 18, 2009 4:30 AMCould you post the execution plan? Please use formatting tags to save the white space while posting the plan.
-
Updatable Materialized View with Union ALL
(please don't ask about db structure)
DB: 11gR2
create table table_1 (
id number primary key,
val varchar2(100)
create table table_2 (
id number primary key,
val varchar2(100)
insert into table_1(id) values (0);
insert into table_1(id) values (2);
insert into table_1(id) values (3);
insert into table_1(id) values (4);
insert into table_1(id) values (5);
insert into table_2(id) values (10);
insert into table_2(id) values (12);
insert into table_2(id) values (13);
insert into table_2(id) values (14);
insert into table_2(id) values (15);
update table_1 set val='Table1 val:'||id;
update table_2 set val='Table2 val:'||id;
create view v_table_all as
select * from table_1
view V_TABLE_ALL created.
select * from v_table_all;
ID VAL
0 Table1 val:0
2 Table1 val:2
3 Table1 val:3
4 Table1 val:4
5 Table1 val:5
select column_name, updatable, insertable, deletable
from user_updatable_columns
where table_name = 'V_TABLE_ALL'
COLUMN_NAME UPDATABLE INSERTABLE DELETABLE
ID YES YES YES
VAL YES YES YES
update v_table_all set val='XXX changed' where id = 3;
1 row updated.
select * from table_1;
ID VAL
0 Table1 val:0
2 Table1 val:2
3 XXX changed
4 Table1 val:4
5 Table1 val:5
rollback;
select * from table_1;
ID VAL
0 Table1 val:0
2 Table1 val:2
3 Table1 val:3
4 Table1 val:4
5 Table1 val:5
create or replace view v_table_all as
select * from table_1
union select * from table_2;
view V_TABLE_ALL created.
select * from v_table_all;
ID VAL
0 Table1 val:0
2 Table1 val:2
3 Table1 val:3
4 Table1 val:4
5 Table1 val:5
10 Table2 val:10
12 Table2 val:12
13 Table2 val:13
14 Table2 val:14
15 Table2 val:15
select column_name, updatable, insertable, deletable
from user_updatable_columns
where table_name = 'V_TABLE_ALL'
COLUMN_NAME UPDATABLE INSERTABLE DELETABLE
ID NO NO NO
VAL NO NO NO
trying update:
update v_table_all set val='XXX changed' where id = 3;
SQL-Fehler: ORA-01732: Datenmanipulationsoperation auf dieser View nicht zulässig
01732. 00000 - "data manipulation operation not legal on this view"
*Cause:
*Action:
drop view v_table_all;
view V_TABLE_ALL dropped.all is ok before this point.
now we want create a new materialized view with some query
create materialized view v_table_all
as
select * from table_1
union all select * from table_2 ;
materialized view V_TABLE_ALL created.
select column_name, updatable, insertable, deletable
from user_updatable_columns
where table_name = 'V_TABLE_ALL'
COLUMN_NAME UPDATABLE INSERTABLE DELETABLE
ID YES YES YES
VAL YES YES YES it seems to be ok with update.
but...
update v_table_all set val='XXX changed' where id = 3;
SQL-Fehler: ORA-01732: Datenmanipulationsoperation auf dieser View nicht zulässig
01732. 00000 - "data manipulation operation not legal on this view"
*Cause:
*Action:How can solve this issue??
Any suggestionLooks like user_updatable_columns sort of thinks the MV is just a table - I don't know about that...
An MV on a single table can be updated - I tried that and it works:
create materialized view mv_table_1 for update
as
select * from table_1;I noticed [url http://download.oracle.com/docs/cd/E11882_01/server.112/e16579/advmv.htm#sthref294]examples stating the UNION ALL needs a "marker" so Oracle can know from the data which source table a row in the MV originates from - like this:
create materialized view v_table_all for update
as
select 'T1' tab_id, table_1.* from table_1
union all
select 'T2' tab_id, table_2.* from table_2 ;But that also fails (the "marker" requirement was specifically for FAST REFRESH, so it was just a long shot ;-) )
What are you planning to do?
<li>Create the MV.
<li>Update records in the MV - which then is no longer consistent with the source data.
<li>Schedule a complete refresh once in a while - thereby overwriting/losing the updates in the MV.
If that is the case, I suggest using a true table rather than an MV.
<li>Create table t_table_all as select ... .
<li>Update records in the table - which then is no longer consistent with the source data.
<li>Schedule a job to delete table and insert into table select ... once in a while - thereby overwriting/losing the updates in the table.
In other words a kind of "do it yourself MV".
I cannot see another way at the moment? But perhaps try in the data warehousing forum - the people there may have greater experience with MV's ;-) -
ORA-01446 when selecting ROWID from View with Union
I have a View that uses a Union to select from 3 tables. I would like the View to return the ROWID for the record that is returned so that I can update it in my form. The View compiles fine but when I select from the View I get ORA-01446 error.
Example of my view:
SELECT ROWID, col_a, col_b, col_c
FROM tab_a
UNION ALL
SELECT ROWID, col_a, col_b, col_c
FROM tab_b
UNION ALL
SELECT ROWID, col_a, col_b, col_c
FROM tab_c
I need the ROWID because my tables do not contain UNIQUE/PRIMARY key constraints. In my form I want to update the view with an underlying INSTEAD OF database trigger.
Any suggestions?I think it will work if you give the column an alias (ie a name after the first rowid) and select that instead.
You will probably also need another column in your view indicating which table the row came from if you want to update it. -
Creating view with union, what to do if a table is missing?
Dear All,
I have three schema in one DB, 11gR1 is the database and Linux is OS.
Schema1
Schema2
Schema3
Each schema contains almost the same structure, but different data.
There are few tables that exists in one schema and may not exist in the other one.
In another schema, i am creating consolidated views using union command.
select * from schema1.table1
union
select * from schema2.table1
union
select * from schema2.table1
If table1 do not exists in schema2, the view gives error.
Is there any possibility that query somehow check if the table exists then select records otherwise skip? It has to be one query.
I hope i am able to deliver through words what I mean.
Your kind help is required on this.
Regards, ImranSo basically
you want to have one view for all the tables with same name in different schemas
and you don't want to check the existence of tables before creating the view.
In that case you can create a script to generate the views by selecting from dba_tables like below
select 'create or replace view v_'||table_name||' as select * from '||owner||'.'||table_name||' union bla bla bla' from dba_tables where table_name='table'
you will probably end up doing this with a cursor and you need to be carefull about union clauses in case there is no bla bla part
Coskan Gundogar
Blog: http://coskan.wordpress.com
Twitter: http://www.twitter.com/coskan
Linkedin: http://uk.linkedin.com/in/coskan
--------- -
Hi all,
I have tried to create a view with next code:
CREATE VIEW vista_urbanizacion AS SELECT
RUPI_URBANIZACIONES.NOMBRE_URBANIZACION,
RUPI_URBANIZACIONES.NRO_PREDIOS,
RUPI_URBANIZACIONES.NRO_URBANIZACION,
RUPI_URBANIZACIONES.ESTADO,
RUPI_URBANIZACIONES.FECHA_INGRESO,
RUPI_URBANIZACIONES.AREA_TERRENO,
RUPI_URBANIZACIONES.TIPO,
RUPI_URBANIZACIONES.UBICACION_ARCHIVO,
RUPI_URBANIZACIONES.NRO_SUPERURBANIZACION,
RUPI_URBANIZACIONES.ID_URBANIZADOR,
RUPI_URBANIZACIONES.AREA_TOTAL_CESION,
RUPI_ESCRITURAS.MATRICULA_INMOBILIARIA,
RUPI_ESCRITURAS.NOTARIA,
RUPI_ESCRITURAS.CIUDAD,
RUPI_ESCRITURAS.ACTO_JURIDICO,
RUPI_ESCRITURAS.FECHA_ESCRITURA,
RUPI_ESCRITURAS.NRO_ESCRITURA,
RUPI_ESCRITURAS.CONSECUTIVO,
RUPI_ESCRITURAS.URBANIZACI_NRO_URBANIZACION,
RUPI_ACTAS.TIPO_ACTA,
RUPI_ACTAS.NRO_ACTA,
RUPI_ACTAS.FECHA_ACTA
FROM
RUPI_URBANIZACIONES,
RUPI_ESCRITURAS,
RUPI_ACTAS
WHERE
RUPI_URBANIZACIONES.NRO_URBANIZACION =
RUPI_ESCRITURAS.URBANIZACI_NRO_URBANIZACION
AND
FECHA_ESCRITURA IN (SELECT MIN(FECHA_ESCRITURA) FROM RUPI_ESCRITURAS
WHERE
RUPI_URBANIZACIONES.NRO_URBANIZACION = RUPI_ESCRITURAS.URBANIZACI_NRO_URBANIZACION)
AND
RUPI_URBANIZACIONES.NRO_URBANIZACION =
RUPI_ACTAS.URBANIZACI_NRO_URBANIZACION
AND
FECHA_ACTA IN (SELECT MAX(FECHA_ACTA) FROM RUPI_ACTAS
WHERE
RUPI_URBANIZACIONES.NRO_URBANIZACION =
RUPI_ACTAS.URBANIZACI_NRO_URBANIZACION)
The problem is the condition "and" from the rupi_escrituras and rupi_actas tables that only will select elements of rupi_urbanizaciones included both in rupi_escrituras and rupi_actas.
I need to use something like "union" in order to include all the distinct elements of both tables rupi_escrituras and rupi_actas.
Could anyone help?
Thanks in advance
RomuloYep,
In this query you don't do any join between the tables. So let's get back to the basic.
Take you first query
SELECT CBR_ID,PLT_ID,SUM(COUNT_POL)
FROM
SELECT pcd_irs_id CBR_ID, pcd_plt_id PLT_ID , sum(pcd_amount_lc) SUM_PREM,0 COUNT_POL
FROM seema
where trunc(pcd_registry_date)=TRUNC(pcd_registry_date)
and pcd_plt_id in('U01','U02')
and pcd_irs_id in (55,56)
AND PCD_IRS_TYPE!=4
GROUP BY PCD_irs_ID,PCD_PLT_ID
UNION
SELECT PLM_CBR_ID CBR_ID,PLM_PLT_ID PLT_ID,0 SUM_PREM, COUNT(PLM_POLICY_NO) COUNT_POL
FROM sarah
WHERE trunc(PLM_registry_date)=TRUNC(PLM_registry_date)
AND PLM_PLT_ID IN('U01','U02)
GROUP BY PLM_CBR_ID,PLM_PLT_ID)
GROUP BY CBR_ID,PLT_ID
ORDER BY CBR_ID,PLT_IDThis query is quite near to the result that you need. You are very near to the result just add the filter that you need in the second query:
SELECT CBR_ID,PLT_ID,SUM(COUNT_POL)
FROM
SELECT pcd_irs_id CBR_ID, pcd_plt_id PLT_ID , sum(pcd_amount_lc) SUM_PREM,0 COUNT_POL
FROM seema
where trunc(pcd_registry_date)=TRUNC(pcd_registry_date)
and pcd_plt_id in('U01','U02')
and pcd_irs_id in (55,56)
AND PCD_IRS_TYPE!=4
GROUP BY PCD_irs_ID,PCD_PLT_ID
UNION
SELECT PLM_CBR_ID CBR_ID,PLM_PLT_ID PLT_ID,0 SUM_PREM, COUNT(PLM_POLICY_NO) COUNT_POL
FROM sarah
WHERE trunc(PLM_registry_date)=TRUNC(PLM_registry_date)
AND PLM_PLT_ID IN('U01','U02)
and PLM_CBR_ID in (55,56) --<<<<<<<<< ADDED FILTER
GROUP BY PLM_CBR_ID,PLM_PLT_ID)
GROUP BY CBR_ID,PLT_ID
ORDER BY CBR_ID,PLT_IDand you are done.
Bye
Antonio -
Oracle doc inconsistent on materialize view with union all and self joins
First of all, I can't seem to create a materialized view containing self-joins AND union all. Is it possible?
I checked Oracle 9i (my version: PL/SQL Release 9.2.0.4.0 - Production) documentation and I get different answers (or so it seems to me).
First I saw this: "The COMPATIBILITY parameter must be set to 9.0 if the materialized aggregate view has inline views, outer joins, self joins or grouping sets and FAST REFRESH is specified during creation..."
Did you see the part about 'self joins' in there? I did and I was pumped because that seems to say that you CAN have 'self joins' (and my compatibility is 9.2...)
BUT
In the very same document I also found "Oracle does not allow self-joins in materialized join views." (rage)
You can see the document I am speaking of here: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96520/mv.htm#574889
Whenever I try to create the mview I get the following error. (
In any caseORA-01446 cannot select ROWID from view with DISTINCT, GROUP BY, etc.First of all, I can't seem to create a materialized view containing self-joins AND union all. Is it possible?
I checked Oracle 9i (my version: PL/SQL Release 9.2.0.4.0 - Production) documentation and I get different answers (or so it seems to me).
First I saw this: "The COMPATIBILITY parameter must be set to 9.0 if the materialized aggregate view has inline views, outer joins, self joins or grouping sets and FAST REFRESH is specified during creation..."
Did you see the part about 'self joins' in there? I did and I was pumped because that seems to say that you CAN have 'self joins' (and my compatibility is 9.2...)
BUT
In the very same document I also found "Oracle does not allow self-joins in materialized join views." (rage)
You can see the document I am speaking of here: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96520/mv.htm#574889
Whenever I try to create the mview I get the following error. (
In any caseORA-01446 cannot select ROWID from view with DISTINCT, GROUP BY, etc. -
Different results using View with union all in 11R1 compared to 10R2
Hello,
I have the following situation:
In Oracle 10R2 I defined a view which looks like this
create view test_view
as
select 'field1;field2;field3' field from dual
union all
select field
from (
select tfield1||';'||tfield2||';'||tfield3 field
from table1
order by tfield1,tfield2,tfield3
The idea is, my first line contains a header information an then the data in the required sorting order.
So, in 10R2, when I export the view with select field from test_view, I get the result as expected, which means, the header from the part with the dual was in the first line and after that, the data in the required sort order.
Now, in 11.1.0.7, it is completely different, because the row of the dual is somewhere in my result set. But if I send the sql instead of the view, I get the expected result as in 10R2.
I have no idea why this is the case now, because in 10R2 this was working permanently as expected. When I look at the execution plan, I see, that he starts parallelisation, which is ok, but the difference is, that in this parallelisation the select from dual is included and in 10R2 he first make the line from the dual and then the parallelisation with the data. It's not clear to me, that if I send the sql to the database I see the required result, but if i define the view as mentioned, and start a select field from view, I get now get the different sorting, because of the parallelisation, where the optimizer he changes his behavior comparing the both database versions. So my question ist, how can I change this behavior to get the same behavior as in release 10R2.
Best regards
RainerHello,
thank you for your sample, I see your idea for my sorting purpose.
I want to look at the following point:
I create the table, as you described. The table has the degree and instances 1. Now I deefine the following view:
create view view_test
as
select 'field1;field2;field3' field
from dual
union all
select tfield1 || ';' || tfield2 || ';' || tfield3 field
from (select * from table1 order by tfield1,tfield2).
This is the way I used it in 10 R2.
Now, the SQL select field from view_test delivers the expected result:
field1;field2;field3
a;b;c
d;e;f
So far so good. But now, I changed the degree of the table1 (alter table table1 parallel (degree 4 instances 1);).
The result looks like that:
a;b;c
field1;field2;field3
d;e;f
So, the parallelisation of my object seems to be the reason for the, in my eyes, "wrong" sort order. In 10R2 I used this degree and instance values for my table and defined a view and it was working fine. Now, after our migration, I had this "trouble". For me it seems, that the optimizer made some changes, or mabe this is a bug, who knows ?
I also tried, to change the nls_comp, and set the undocumented parameters as described in the Metalink note 7497640.8, but with no effect of my result set.
Best regards
Rainer -
Materalized view with union all and fast referesh
I have a one view which is very slow. in this view we are joining many tables and many union all queries.
now I am planing to make materalized view
Tell me how i will created view with fast refresh with union all query.
Pls help its urgent..
Thanks
ReenaRefer to the Replication Manual for the create syntax and exceptions.
-
An internal Error: Widget is disposed HANA Studio rev 73
Hi guys,
I updated studio to rev 73 recently and noticed that during CSV file import it gives an error, have you seen something similar?Just to make sure that is a error with wizard, did you try to do the manual import of the file using IMPORT command and check if it went fine?
Regards,
Krishna Tangudu -
Performance problem on view with spatial column - resolved
I have had a problem with queries on a view that had a spatial column, where the view did not belong to the logged in user. Where my spatial window was retrieved by a sub-query, the spatial scan did a full table scan instead of using the spatial index.
I have found that the problem can be resolved by granting MERGE VIEW on the view to the querying user.
The view can be as simple as SELECT * FROM table.
The badly performing query could be as simple as
select id from T1.tstview
where SDO_RELATE(coordinates,
(SELECT coordinates FROM T1.tstWINDOW WHERE ID = '1')
,'mask=INSIDE+COVEREDBY querytype=WINDOW') = 'TRUE' ;
I think this is a bug, and have raised an SR - MERGE VIEW is supposed to override issues with the "security intent" of a view.
The workaround is simple enough once you're aware of it and I thought it was worth passing on.Thanks for sharing this workaround!
Which ORACLE version did you test ? -
Call graphical calc view with parameters
Hello,
We want to call a graphical calculation view that requires parameters via CE functions.
Is this possible? How can we do that?
Thanks,
Oshrit.Hello,
We still don't know, how is it possible to select from CV with parameter through CE function.
Thanks,
Amir -
Inconsistent SQL results when using View with UNION-ALL and table function
Can any of you please execute the below scripts and check the output. In the table type variable, I am adding 4 distinct object ids, where as in the result, I get only the row pertaining to last id in the table type variable. Same row is returned 4 times (4= number of values in the table type).
This scenario is occurring in our product with a SQL with exactly same pattern. I could simulate the same issue with the sample script I have provided.
Database version: 11.2.0.3 Enterprise Edition, Single node
Thank you.
CREATE TABLE TEMP_T1 AS SELECT * FROM ALL_OBJECTS;
CREATE TABLE TEMP_T2 AS SELECT * FROM ALL_OBJECTS;
UPDATE TEMP_T2 SET OBJECT_ID = OBJECT_ID * 37;
CREATE UNIQUE INDEX TEMP_T1_U1 ON TEMP_T1(OBJECT_ID);
CREATE UNIQUE INDEX TEMP_T2_U1 ON TEMP_T2(OBJECT_ID);
CREATE OR REPLACE VIEW TEMP_T1T2_V AS
SELECT * FROM TEMP_T1 UNION ALL SELECT * FROM TEMP_T2;
CREATE OR REPLACE TYPE TEMP_OBJ_TYPE AS OBJECT (OBJ_ID NUMBER);
CREATE OR REPLACE TYPE TEMP_OBJ_TAB_TYPE IS TABLE OF TEMP_OBJ_TYPE;
SET SERVEROUTPUT ON;
DECLARE
TYPE TEMP_T1T2_V_ROW_TAB_TYPE IS TABLE OF TEMP_T1T2_V%ROWTYPE;
TEMP_T1T2_V_ROW_TAB TEMP_T1T2_V_ROW_TAB_TYPE;
TEMP_OBJ_TAB TEMP_OBJ_TAB_TYPE := TEMP_OBJ_TAB_TYPE();
PROCEDURE ADD_TO_TEMP_OBJ_TAB(OBJ_ID IN NUMBER) IS
BEGIN
TEMP_OBJ_TAB.EXTEND;
TEMP_OBJ_TAB(TEMP_OBJ_TAB.LAST) := TEMP_OBJ_TYPE(OBJ_ID);
END;
BEGIN
ADD_TO_TEMP_OBJ_TAB(100);
ADD_TO_TEMP_OBJ_TAB(116);
ADD_TO_TEMP_OBJ_TAB(279);
ADD_TO_TEMP_OBJ_TAB(364);
DBMS_OUTPUT.PUT_LINE('=====================');
FOR I IN TEMP_OBJ_TAB.FIRST..TEMP_OBJ_TAB.LAST
LOOP
DBMS_OUTPUT.PUT_LINE('OBJ_ID = '||TEMP_OBJ_TAB(I).OBJ_ID);
END LOOP;
DBMS_OUTPUT.PUT_LINE('---------------------');
SELECT * BULK COLLECT INTO TEMP_T1T2_V_ROW_TAB
FROM TEMP_T1T2_V VW
WHERE ((VW.OBJECT_ID) IN (SELECT OBJ_ID
FROM TABLE(CAST(TEMP_OBJ_TAB AS TEMP_OBJ_TAB_TYPE))));
FOR I IN TEMP_OBJ_TAB.FIRST..TEMP_OBJ_TAB.LAST
LOOP
DBMS_OUTPUT.PUT_LINE('OBJ_ID = '||TEMP_OBJ_TAB(I).OBJ_ID);
END LOOP;
DBMS_OUTPUT.PUT_LINE('---------------------');
IF TEMP_T1T2_V_ROW_TAB.COUNT > 0 THEN
FOR I IN TEMP_T1T2_V_ROW_TAB.FIRST..TEMP_T1T2_V_ROW_TAB.LAST
LOOP
DBMS_OUTPUT.PUT_LINE(TEMP_T1T2_V_ROW_TAB(I).OBJECT_ID||' : '||TEMP_T1T2_V_ROW_TAB(I).OBJECT_NAME);
END LOOP;
ELSE
DBMS_OUTPUT.PUT_LINE('NO ROWS RETURNED!');
END IF;
DBMS_OUTPUT.PUT_LINE('---------------------');
END;
/I can reproduce it:
SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 30 14:05:39 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Enter user-name: scott
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select *
2 from v$version
3 /
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
SQL> CREATE TABLE TEMP_T1 AS SELECT * FROM ALL_OBJECTS;
Table created.
SQL>
SQL> CREATE TABLE TEMP_T2 AS SELECT * FROM ALL_OBJECTS;
Table created.
SQL>
SQL> UPDATE TEMP_T2 SET OBJECT_ID = OBJECT_ID * 37;
72883 rows updated.
SQL>
SQL> CREATE UNIQUE INDEX TEMP_T1_U1 ON TEMP_T1(OBJECT_ID);
Index created.
SQL>
SQL> CREATE UNIQUE INDEX TEMP_T2_U1 ON TEMP_T2(OBJECT_ID);
Index created.
SQL>
SQL> CREATE OR REPLACE VIEW TEMP_T1T2_V AS
2 SELECT * FROM TEMP_T1 UNION ALL SELECT * FROM TEMP_T2;
View created.
SQL>
SQL> CREATE OR REPLACE TYPE TEMP_OBJ_TYPE AS OBJECT (OBJ_ID NUMBER)
2 /
Type created.
SQL> CREATE OR REPLACE TYPE TEMP_OBJ_TAB_TYPE IS TABLE OF TEMP_OBJ_TYPE
2 /
Type created.
SQL> SET SERVEROUTPUT ON;
SQL>
SQL> DECLARE
2 TYPE TEMP_T1T2_V_ROW_TAB_TYPE IS TABLE OF TEMP_T1T2_V%ROWTYPE;
3 TEMP_T1T2_V_ROW_TAB TEMP_T1T2_V_ROW_TAB_TYPE;
4 TEMP_OBJ_TAB TEMP_OBJ_TAB_TYPE := TEMP_OBJ_TAB_TYPE();
5 PROCEDURE ADD_TO_TEMP_OBJ_TAB(OBJ_ID IN NUMBER) IS
6 BEGIN
7 TEMP_OBJ_TAB.EXTEND;
8 TEMP_OBJ_TAB(TEMP_OBJ_TAB.LAST) := TEMP_OBJ_TYPE(OBJ_ID);
9 END;
10 BEGIN
11 ADD_TO_TEMP_OBJ_TAB(100);
12 ADD_TO_TEMP_OBJ_TAB(116);
13 ADD_TO_TEMP_OBJ_TAB(279);
14 ADD_TO_TEMP_OBJ_TAB(364);
15 DBMS_OUTPUT.PUT_LINE('=====================');
16 FOR I IN TEMP_OBJ_TAB.FIRST..TEMP_OBJ_TAB.LAST
17 LOOP
18 DBMS_OUTPUT.PUT_LINE('OBJ_ID = '||TEMP_OBJ_TAB(I).OBJ_ID);
19 END LOOP;
20 DBMS_OUTPUT.PUT_LINE('---------------------');
21 SELECT * BULK COLLECT INTO TEMP_T1T2_V_ROW_TAB
22 FROM TEMP_T1T2_V VW
23 WHERE ((VW.OBJECT_ID) IN (SELECT OBJ_ID
24 FROM TABLE(CAST(TEMP_OBJ_TAB AS TEMP_OBJ_TAB_TYPE))));
25 FOR I IN TEMP_OBJ_TAB.FIRST..TEMP_OBJ_TAB.LAST
26 LOOP
27 DBMS_OUTPUT.PUT_LINE('OBJ_ID = '||TEMP_OBJ_TAB(I).OBJ_ID);
28 END LOOP;
29 DBMS_OUTPUT.PUT_LINE('---------------------');
30 IF TEMP_T1T2_V_ROW_TAB.COUNT > 0 THEN
31 FOR I IN TEMP_T1T2_V_ROW_TAB.FIRST..TEMP_T1T2_V_ROW_TAB.LAST
32 LOOP
33 DBMS_OUTPUT.PUT_LINE(TEMP_T1T2_V_ROW_TAB(I).OBJECT_ID||' : '||TEMP_T1T2_V_ROW_TAB(I).OBJECT_NAME);
34 END LOOP;
35 ELSE
36 DBMS_OUTPUT.PUT_LINE('NO ROWS RETURNED!');
37 END IF;
38 DBMS_OUTPUT.PUT_LINE('---------------------');
39 END;
40 /
=====================
OBJ_ID = 100
OBJ_ID = 116
OBJ_ID = 279
OBJ_ID = 364
OBJ_ID = 100
OBJ_ID = 116
OBJ_ID = 279
OBJ_ID = 364
364 : I_AUDIT
364 : I_AUDIT
364 : I_AUDIT
364 : I_AUDIT
PL/SQL procedure successfully completed.
SQL> column object_name format a30
SQL> select object_id,
2 object_name
3 from dba_objects
4 where object_id in (100,116,279,364)
5 /
OBJECT_ID OBJECT_NAME
100 ORA$BASE
116 DUAL
279 MAP_OBJECT
364 I_AUDIT
SQL> Works fine in:
=====================
OBJ_ID = 100
OBJ_ID = 116
OBJ_ID = 279
OBJ_ID = 364
OBJ_ID = 100
OBJ_ID = 116
OBJ_ID = 279
OBJ_ID = 364
100 : ORA$BASE
116 : DUAL
364 : SYSTEM_PRIVILEGE_MAP
279 : MAP_OBJECT
PL/SQL procedure successfully completed.
SQL> select object_id,
2 object_name
3 from dba_objects
4 where object_id in (100,116,279,364)
5 /
OBJECT_ID OBJECT_NAME
100 ORA$BASE
116 DUAL
364 SYSTEM_PRIVILEGE_MAP
279 MAP_OBJECT
SQL> select *
2 from v$version
3 /
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL>SY.
Edited by: Solomon Yakobson on Oct 30, 2012 2:14 PM
Maybe you are looking for
-
Configuration problem with param or code problem
Hi, Im new to this jsp. Currently, i have some some Q here. Im trying on the jsp-tutorial with <%@ taglib prefix="my" uri="./jsp2/jsp2-example-taglib.tld" %> <HEAD> <TITLE>Functions</TITLE> </HEAD> <BODY> <H3>Add Numbers</H3> <P> <FORM action="./comp
-
READ_ERROR_FROM_CLIENT
When I try and attach a large file through the wl-proxy, I get a READ_ERROR_FROM_CLIENT: trying to POST /jive4/attach.jspa, Client-Auth reports: Cannot buffer client data -wl-proxy reports: IO error reading POST data at line 628 of proxy.cpp, system
-
Hello Gurus, In BD64 I am trying to generate a partner profile for R/3 to BW system. The RFC destination has been defined correctly. And WE20 is also maintained in both the systems. After defining the message types RSSEND, RSINFO and RSRQST in BD64,
-
The message goes on to say the certificate expired on 5/22/11 at 3:11 pm Error code: sec_error_expired_certificate. I get this pop-up message about every 5 minutes. I am not an IT professional or advanced user so please provide a simple solution. Tha
-
L220x and i1display2 calibration issue
I am attempting to calibrate my monitor with an i1 display2 with latest software from X-rite and having issues with RGB Controls (possibly other things not sure) Basically regardless of whether i use presets or custom I am unable to move the RGB bar