Join Two EXEC statements
Hi Team,
I want to join two dynamic sql with a UNION in between
EXEC(@STRSQLNOArchive+' UNION' + @STRSQLArchive)
But here it is throwing an error .How this can be done
SET @STRSQLNOArchive= 'Select columnname1 from table 1'
SET @STRSQLArchive= 'Select columnname2 from table 2'
Result should be like this
Select columnname1 from table 1
UNION
Select columnname2 from table 2
Thanks,
Divya
this is the query i m using
Declare @FilterTable table
ColumnName varchar(50),
Value varchar(250),
Type varchar(50)
INSERT INTO @FilterTable(ColumnName,Value,Type)
SELECT
[Table].[Column].value('(@Field)[1]','varchar(250)') 'ColumnName',
[Table].[Column].value('(@Filter)[1]','varchar(250)') 'Value',
[Table].[Column].value('(@Type) [1]','varchar(250)') 'Type'
FROM @ParamListXML.nodes('/ROOT/Parameter') [Table]([Column])
-- Select * from @FilterTable
DECLARE @Where varchar(4000);
declare @sql nvarchar(Max);
SELECT
@Where = CASE WHEN ISNULL(@Where,'') = '' THEN '' ELSE @Where + ' AND ' END +'v.'+ColumnName + ' LIKE ''' + Value + ''''
FROM
@FilterTable
WHERE
ISNULL(Value,'') <> ''
DECLARE @STRSQLNOArchive varchar(max)
DECLARE @STRSQLArchive varchar(max)
SET @STRSQLNOArchive = '
SELECT * from
(SELECT Row_number()Over(Order By V.ProjectId) Rownum,
Colum1,
Colum2,
Colum3,
Colum4,
Colum5,
Colum6,
Colum7,
Colum8
FROM PLanInfoBackup v
LEFT JOIN Arch_tableBKUP b2 ON v.RefBudgetId = b2.BudgetId
LEFT JOIN Lookup_TableBKUP d ON b2.LevelDomainId = d.DomainId
LEFT JOIN ShowBKUP ak ON v.TVSHowID = ak.TVShowID
LEFT JOIN dbo.Status (nolock) bs ON v.BudgetId = bs.BudgetId
WHERE '+ @where +'
AND((
EXISTS (SELECT ''X'' FROM v_CurrentUser p WHERE v.CompanyId = p.CompanyId AND p.ShowId IS NULL AND p.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p2 WHERE v.ShowId = p2.howId AND p2.SeasonId = 0 AND p2.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p3 WHERE v.ShowId = p3.TVShowId AND v.SeasonDId = p3.SeasonDId AND p3.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p4 WHERE v.ProId = p4.ProId AND p4.UserId = '+ CONVERT(varchar(10),@UserId) +' )
) OR '+CONVERT(varchar(10),@UserId)+' = 0)
)SearchTest
where Rownum < 501
order by GLCode, LevelSort, Revision, Scenario '
--PRINT @STRSQLNOArchive;
-- EXEC(@STRSQLNOArchive)
SET @STRSQLArchive = '
SELECT * from
( SELECT Row_number()Over(Order By V.ProjectId) Rownum,
Colum1,
Colum2,
Colum3,
Colum4,
Colum5,
Colum6,
Colum7,
Colum8
FROM PLanInfo v
LEFT JOIN Arch_table b2 ON v.RefBudgetId = b2.BudgetId
LEFT JOIN Lookup_Table d ON b2.LevelDomainId = d.DomainId
LEFT JOIN Show ak ON v.TVSHowID = ak.TVShowID
LEFT JOIN dbo.tableStatus (nolock) bs ON v.BudgetId = bs.BudgetId
WHERE '+ @where +'
AND((
EXISTS (SELECT ''X'' FROM v_CurrentUser p WHERE v.CompanyId = p.CompanyId AND p.ShowId IS NULL AND p.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p2 WHERE v.ShowId = p2.howId AND p2.SeasonId = 0 AND p2.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p3 WHERE v.ShowId = p3.TVShowId AND v.SeasonDId = p3.SeasonDId AND p3.UserId = '+ CONVERT(varchar(10),@UserId) +' ) OR
EXISTS (SELECT ''X'' FROM v_CurrentUser p4 WHERE v.ProId = p4.ProId AND p4.UserId = '+ CONVERT(varchar(10),@UserId) +' )
) OR '+CONVERT(varchar(10),@UserId)+' = 0)
)SearchTest
where Rownum < 501
order by GLCode, LevelSort, Revision, Scenario '
--set @sql = @STRSQLNOArchive +char(13)+' UNION '+char(13) + @STRSQLArchive
--print @sql
--Exec sp_executesql @sql
--SELECT ColumnName,Value
--From @FilterTable --where columnname ='WBSProject'
IF (select '1' from @FilterTable where ColumnName = 'IsArchived' and Value='0') >0
EXEC(@STRSQLNOArchive)
ELSE
BEGIN
--EXEC(@STRSQLArchive)
set @sql = @STRSQLNOArchive +char(13)+' UNION '+ char(13) + @STRSQLArchive
Print @sql
Exec sp_executesql @sql
-- PRint @STRSQLArchive
--EXEC(@STRSQLNOArchive+ char(13)+' UNION' +char(13)+ @STRSQLArchive)
END
Similar Messages
-
Problem encountered when join two remote tables in a materialized view
I'm using oracle 9.2.0.6
1> I have two tables:
CREATE TABLE TEST
A VARCHAR2(100 BYTE),
C DATE
CREATE TABLE TEST1
A VARCHAR2(100 BYTE),
B TIMESTAMP
2>. I defined a prebuild table:
CREATE TABLE MV_TEST1
ID1 ROWID,
A VARCHAR2(100 BYTE),
ID2 ROWID,
B TIMESTAMP(6),
C DATE
3> I created mview logs:
CREATE MATERIALIZED VIEW LOG ON PSI_TEST.TEST
WITH ROWID
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON PSI_TEST.TEST1
WITH ROWID
INCLUDING NEW VALUES;
4> when I create mview:
CREATE MATERIALIZED VIEW PSI_TEST.MV_TEST1
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS
select
test.rowid id1,
test.a,
test1.rowid id2,
test1.b,
cast(null as date) c
from test , test1
where test.a = test1.a(+);
It is created successfully.
5> problem:
when I use remote tables to do the same thing, say test and test1 are in another instance and are connected by a dbLink, I couldn't create the mview successfully:
CREATE MATERIALIZED VIEW PSI_TEST.MV_TEST1
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS
select
a.rowid id1,
a.a,
b.rowid id2,
b.b,
cast(null as date) c
from test@dbl a, test1@dbl b
where a.a = b.a(+);
when run above statement, I got:
ORA-12015: cannot create a fast refresh materialized view from a complex query
Any ideas? Or joining two table through a dblink for a mview is not allowed at all?
Thanks in advance.No one has a clue?
Message was edited by:
lzhwxy -
How do you join two tables from different Oracle schemas using a subquery
I am trying to join two tables from different Oracle schemas using a subquery. I can extract data from each of the tables without a problem. However, when I combine the select statements using a subquery I get the Oracle error *'ORA-00936: missing expression'*. Since each SELECT statement executes on its own without error I don't understand what is missing. The result set I am trying to get is to match up the LINE_ID from PDTABLE_12_1 in schema DD_12809 with the MAT_DESCRIPTION from table PDTABLE_201 in schema RA_12809.
The query is as follows:
sql = "SELECT [DD_12809].[PDTABLE_12_1].LINE_ID FROM [DD_12809].[PDTABLE_12_1] JOIN " _
+ "(SELECT [RA_12809].[PDTABLE_201].MAT_DESCRIPTION " _
+ "FROM [RA_12809].[PDTABLE_201]) AS FAB " _
+ "ON [DD_12809].[PDTABLE_12_1].PIPING_MATER_CLASS = FAB.PIPING_MATER_CLASS"
The format of the query is copied from a SQL programming manual.
I also tried executing the query using a straight JOIN on the two tables but got the same results. Any insight would be helpful. Thanks!
Edited by: user11338343 on Oct 19, 2009 6:55 AMI believe you are receiving the error because you are trying to JOIN on a column that doesn't exist. For example you are trying to join on FAB.PIPING_MATER_CLASS but that column does not exist in the subquery.
If you want to do a straight join without a subquery you could do the following
SELECT DD_12809.PDTABLE_12_1.LINE_ID
, FAB.MAT_DESCRIPTION
FROM DD_12809.PDTABLE_12_1
JOIN RA_12809.PDTABLE_201 AS FAB ON DD_12809.PDTABLE_12_1.PIPING_MATER_CLASS = FAB.PIPING_MATER_CLASS HTH! -
Joining two fact tables with different dimensions into single logical table
Hi Gurus,
I try to accomplish in Oracle Business Intelligence 11.1.1.3.0:
F1 (D1, D2 and D3)
F2 (D1 and D2 and D4)
And we want to build a report F1 F2 D1 D2 D3 D4 to have data for:
F1 that match only for D1-D2-D3
and data for
F2 that match only D1-D2-D4
all that in one row, so D3 and D4 are not common dimensions.
I can only do:
F3 (D1, D2)
F4 (D1, D2 and D4)
And report
F3 F4 D1,D2,D4 (all that in one row, and only D4 is not a common dimension)
Here is the very good example how to accomplish the scenario 1
http://108obiee.blogspot.com/2009/08/joining-two-fact-tables-with-different.html
But looks like it does not work in 11.1.1.3.0
I get
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 14025] No fact table exists at the requested level of detail: [,,Clients,,Day,ROI,,,,EW_Names,,,,,,,,,,,,,,,,,]. (HY000)
I am sure I set up everything correctly as advised in the blog but it works with only one not a common dimension
Is it a bug in 11.1.1.3.0 or something?
Thanks,
KateThanks for all your replies.
Actually, I've tried the solutions you guys mentioned. Generally speaking, the result should be displayed. However, my scenario is a little bit tricky.
table Y's figures are not the aggregation of table X for D dimension. Instead, table Y's figures include not only D dimension total, but also others (others do not mean A, B, C dimension). For example, table Y stores all food's figure, while table X stores only drink's figure. D dimension is only about drink's detail. In my scenario, other foods' figure is not provided.
So, even if I set D dimension to all/total for table X, table X's result is still not the same as table Y.
Indeed, table Y does not have a column key to join to D dimension's key. So, if I select D dimension and table Y's measures at the same time in BI Answer, result returns no data. Hence, I can't compare table X and table Y's results with selection of D dimension.
Is there any solution to solve this problem?
Edited by: TomChan on Jun 3, 2009 9:36 AM -
Join two source tables and replicat into a target table with BLOB
Hi,
I am working on an integration to source transaction data from legacy application to ESB using GG.
What I need to do is join two source tables (to de-normalize the area_id) to form the transaction detail, then transform by concatenate the transaction detail fields into a value only CSV, replicate it on the target ESB IN_DATA table's BLOB content field.
Based on what I had researched, lookup by join two source tables require SQLEXEC, which doesn't support BLOB.
What alternatives are there and what GG recommend in such use case?
Any helpful advice is much appreciated.
thanks,
XiaocunXiaocun,
Not sure what you're data looks like but it's possible the the comma separated value (CSV) requirement may be solved by something like this in your MAP statement:
colmap (usedefaults,
my_blob = @STRCAT (col02, ",", col03, ",", col04)
Since this is not 1:1 you'll be using a sourcedefs file, which is nice because it will do the datatype conversion for you under the covers (also a nice trick when migrating long raws to blobs). So col02 can be varchar2, col03 a number, and col04 a clob and they'll convert in real-time.
Mapping two tables to one is simple enough with two MAP statements, the harder challenge is joining operations from separate transactions because OGG is operation based and doesn't work on aggregates. It's possible you could end up using a combination of built in parameters and funcations with SQLEXEC and SQL/PL/SQL for more complicated scenarios, all depending on the design of the target table. But you have several scenarios to address.
For example, is the target table really a history table or are you actually going to delete from it? If just the child is deleted but you don't want to delete the whole row yet, you may want to use NOCOMPRESSDELETES & UPDATEDELETES and COLMAP a new flag column to denote it was deleted. It's likely that the insert on the child may really mean an update to the target (see UPDATEINSERTS).
If you need to update the LOB by appending or prepending new data then that's going to require some custom work, staging tables and a looping script, or a user exit.
Some parameters you may want to become familiar with if not already:
COLS | COLSEXCEPT
COLMAP
OVERRIDEDUPS
INSERTDELETES
INSERTMISSINGUPDATES
INSERTUPDATES
GETDELETES | IGNOREDELETES
GETINSERTS | IGNOREINSERTS
GETUPDATES | IGNOREUPDATES
Good luck,
-joe -
Join two remote sites, use_nl or use_hash
We are using Oracle 10g R2 on Linux platform.
Suppose we have three remote sites A, B and C. I want to join two tables on B and C by executing a query on Site A. I cannot give driving_site hint because I do not have privileges for that.
Can you please answer the following question?
If I use nested loop join, both tables on site B and C shall be copied to the local site A and join shall be performed OR only one table, called the deriving table shall be copied on site A and second table shall be probed remotely?
In Hash Join, Oracle shall copy both tables B and C on site A and then perform the join?
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Inst |IN-OUT|
| 0 | SELECT STATEMENT | | 13084 | 907K| 11M (3)| 37:04:41 | | |
| 1 | NESTED LOOPS OUTER| | 13084 | 907K| 11M (3)| 37:04:41 | | |
| 2 | REMOTE | VISA_CIL01_GDA_INTEREST_PERIOD | 13084 | 344K| 15 (7)| 00:00:01 | CIL_G~ |
| 3 | REMOTE | VGUA_CIL01_ACCOUNT_ID | 1 | 44 | 850 (3)| 00:00:11 | CIL_G~ | R->S |No; it means that when you are trying to work out whether or not a nested loop join .......
Can you please tell me scenario where I should use NL instead of Hash join
This means that the point at which you decide to switch from NL to Hash join will typically be for a smaller number of cycles round the loop, i.e. for a smaller amount of data.
Sorry, I could not get this point. Does it mean that we should use hash join when we have tables to join?
Do you have a URL for the document you read that gave this impression
Actually this is Oracle 8i documentation from which i get this concept, perhaps not feasible in Oracle 10g now. Tuning Distributed Queries
For the nested loop, the rows and columns needed by the outer (first) table will be pulled to the local site in relatively small batches, and for each row in that rowsource the inner (second) table will be probed across the network.
Can you please give me reference from Oracle documentation about the the above description to help me better understand the idea? -
How to prevent Oracle from using an index when joining two tables ...
How to prevent Oracle from using an index when joining two tables to get an inline view which is used in an update statement?
O.K. I think I have to explain what I mean:
When joining two tables which have many entries sometimes it es better not to use an index on the column used as join criteria.
I have two tables: table A and table B.
Table A has 4.000.000 entries and table B has 700.000 entries.
I have a join of both tables with a numeric column as join criteria.
There is an index on this column in table A.
So I instead of
where (A.col = B.col)I want to use
where (A.col+0 = B.col)in order to prevent Oracle from using the index.
When I use the join in a select statement it works.
But when I use the join as inline view in an update statement I get the error ORA-01779.
When I remove the "+0" the update statement works. (The column col is unique in table B).
Any ideas why this happens?
Thank you very much in advance for any help.
Regards HartmutI think you should post an properly formatted explain plan output using DBMS_XPLAN.DISPLAY including the "Predicate Information" section below the plan to provide more details regarding your query resp. update statement. Please use the \[code\] and \[code\] tags to enhance readability of the output provided:
In SQL*Plus:
SET LINESIZE 130
EXPLAIN PLAN FOR <your statement>;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);Usually if you're using the CBO (cost based optimizer) and have reasonable statistics gathered on the database objects used the optimizer should be able to determine if it is better to use the existing index or not.
Things look different if you don't have statistics, you have outdated/wrong statistics or deliberately still use the RBO (rule based optimizer). In this case you would have to use other means to prevent the index usage, the most obvious would be the already mentioned NO_INDEX or FULL hint.
But I strongly recommend to check in first place why the optimizer apparently seems to choose an inappropriate index access path.
Regards,
Randolf
Oracle related stuff:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle:
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Hi,
The following query is showing error An INSERT EXEC statement cannot be nested
CREATE PROCEDURE [dbo].[Procedur3]
@para1 int
AS
BEGIN
CREATE TABLE #tem
select * from detialpar where did=@para1
--this code is quite big and is called from many place so we kept it inside this SP , so that we can call the sp to get result.
END
CREATE PROCEDURE [dbo].[Procedur2]
@para1 int
@para2 datetime
AS
BEGIN
CREATE TABLE #tem
insert into #tem (value) exec [dbo].[Procedure3] @para1
exec ('select * from abc
left join #tem on id=temid
where id =' + cast(@para1 as varchar) -- i do not want to change this big dynamic query, because it has many optonal code concatinated by using "if then else".
END
CREATE PROCEDURE [dbo].[Procedure1]
@para1 int,
@para2 datetime
AS
BEGIN
delete from table1 where id=@para1
insert into table1 ( col1,col2) exec Procedure2 @para1,@para2
……. There are many blocks in this SP where we are deleting and inserting with different SP .
select Name,Amount from #Temp1
END
CREATE PROC Procedure
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SET NOCOUNT ON
LOOP "A" starts here which gests id from a table xyz @para1
begin try
begin trans
exec [Procedure1] @para1
LOOP "A" ents here
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@trancount > 0 ROLLBACK TRANSACTION;
END CATCH;
END
GO
Please tel me some good way of solving the error.
yours sincerlyYou can not do like above:
Try the below:(Not tested), Below, we do not change the code, however, we placed your dynamic execution to different procedure.
CREATE PROCEDURE [dbo].[Procedur3]
@para1 int
AS
BEGIN
CREATE TABLE #tem
insert into #tem (value)
select * from detialpar where did=@para1
--this code is quite big and is called from many place so we kept it inside this SP , so that we can call the sp to get result.
END
CREATE PROCEDURE [dbo].[Procedur2]
@para1 int
@para2 datetime
AS
BEGIN
CREATE TABLE #tem
exec [dbo].[Procedure3] @para1
END
CREATE PROCEDURE [dbo].[Procedure1]
@para1 int,
@para2 datetime
AS
BEGIN
delete from table1 where id=@para1
insert into table1 ( col1,col2)
exec ('select * from abc
left join #tem on id=temid
where id =' + cast(@para1 as varchar) -- i do not want to change this big dynamic query, because it has many optonal code concatinated by using "if then else".
……. There are many blocks in this SP where we are deleting and inserting
with different SP .
select Name,Amount from #Temp1
END
CREATE PROC Procedure
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SET NOCOUNT ON
LOOP "A" starts here which gests id from a table xyz @para1
begin try
begin trans
exec [Procedure1] @para1
LOOP "A" ents here
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@trancount > 0 ROLLBACK TRANSACTION;
END CATCH;
END
GO -
Joining two tables in PL/SQL
Hi there,
I have two problems...first being:
We are trying to run a sub-query within a WHERE/AND clause. I am not sure on the correct syntax on how to run the sub-query as denoted in the code below. Secondly I am trying to join two tables with a common column name (ie: CIPIDI_NR). Considering I cant fix the first problem I cant test out the sub-query. So any help on either would be grateful. Cheers
Select *
from TBL_CIPIDI
WHERE CIPIDI_NR like nvl ('in_case_number%', CIPIDI_NR)
AND CIPIDI_NAME like nvl ('in_case_name%', CIPIDI_NAME)
AND COST_CENTRE LIKE NVL ('in_cost_centre%', COST_CENTRE)
AND CIPIDI_DESCRIPTION like nvl ('in_description%', CIPIDI_DESCRIPTION)
AND CLAIMANT_NAME LIKE NVL ('in_claimant%', CLAIMANT_NAME)
AND REQUESTOR LIKE NVL ('in_requestor%', REQUESTOR)
AND PROJECT_MANAGER LIKE NVL ('in_project_manager%', PROJECT_MANAGER)
AND TEAM_LEADER LIKE NVL ('in_team_leader%', TEAM_LEADER)
AND ********RUN THE QUERY BELOW************
SELECT C1.CIPIDI_NR, C2.CIPIDI_NR
from TBL_TEAM_MEMBERS C1, TBL_CIPIDI C2
WHERE C1.CIPIDI_NR = C2.CIPIDI_NR
AND TEAM_MEM_NAME LIKE NVL ('in_team_mem_name%', TEAM_MEM_NAME)
);You really need to start providing create table and insert statements for tables and sample data for testing, the results that you want based on that data in order to clarify the problem, your Oracle version, and a copy and paste of an attempted run of your code, complete with any error messages received. The following is my best guess at what you might be looking for.
Select *
from TBL_TEAM_MEMBERS C1, TBL_CIPIDI C2
WHERE C1.CIPIDI_NR = C2.CIPIDI_NR
AND c1.CIPIDI_NR like nvl (in_case_number || '%', c1.CIPIDI_NR)
AND c1.CIPIDI_NAME like nvl (in_case_name || '%', c1.CIPIDI_NAME)
AND c1.COST_CENTRE LIKE NVL (in_cost_centre || '%', c1.COST_CENTRE)
AND c1.CIPIDI_DESCRIPTION like nvl (in_description || '%', c1.CIPIDI_DESCRIPTION)
AND c1.CLAIMANT_NAME LIKE NVL (in_claimant || '%', c1.CLAIMANT_NAME)
AND c1.REQUESTOR LIKE NVL (in_requestor || '%', c1.REQUESTOR)
AND c1.PROJECT_MANAGER LIKE NVL (in_project_manager || '%', c1.PROJECT_MANAGER)
AND c1.TEAM_LEADER LIKE NVL (in_team_leader || '%', c1.TEAM_LEADER)
AND TEAM_MEM_NAME LIKE NVL (in_team_mem_name || '%', TEAM_MEM_NAME); -
Joining two tables, sql query
This is a newbie question! I would like to join two tables. Table_1 contains xml stylesheets:
id stylesheet doc
1 <xml stylesheet doc A>
2 <xml stylesheet doc B>
And Table_2 contains the XML documents that the stylesheets will transform:
id XML doc
1 <XML document 1>
1 <XML document 2>
1 <XML document 3>
2 <XML document 4>
2 <XML document 5>
I would like <xml stylesheet doc A> to transform only XML doc that have an id of 1, so I tried this sql statement:
select a.stylesheet_doc ,b.xml_doc from Table_1 a, Table_2 b where a.id=b.id and a.id=1;
This statement returns the rows I want (stylesheet doc with id equals 1, and xml_doc with id equals 1), but it pairs each xml document with a style sheet.
stylesheet doc A <XML document 1>
stylesheet doc A <XML document 2>
stylesheet doc A <XML document 3>
My question is, is there a way to have a result that looks like this?
stylesheet doc A
<XML document 1>
<XML document 2>
<XML document 3>
That is, is there a way in sql to get rid of duplicate stylesheet doc A?
I have tried group by and rollup and xmlagg.
Thank you very, very much for your help.
JimHi, Jim,
Welcome to the forum!
You just want to display the XML, not actually transform it, right?
GROUP BY ROLLUP should work, but I find it easier with GROUP BY GROUPING SETS. Here's an example from tables in the scott schema:
SELECT CASE
WHEN GROUPING (ename) = 1
THEN d.dname
END AS dname
, e.ename
FROM scott.dept d
JOIN scott.emp e ON d.deptno = e.deptno
GROUP BY GROUPING SETS ( (d.dname, e.ename)
, (d.dname)
ORDER BY d.dname
, ename NULLS FIRST
;Output:
DNAME ENAME
ACCOUNTING
CLARK
KING
MILLER
RESEARCH
ADAMS
FORD
JONES
SCOTT
SMITH
SALES
ALLEN
BLAKE
JAMES
MARTIN
TURNER
WARDYou may have noticed that this site noramlly compresses whitespace.
Whenever you post formatted text (such as query results) on this site, type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing. -
Exec.State and Start Asynchrono​us Call
In my application I like to start a VI asynchronously by pressing a button control. I just want to have one instance of the VI running so I let the caller test if the VI is already running. Unfortunately there seems to be a bug in the Exec.State property if you use it with a VI reference that has been built with a type specifier. It returns always "Running" as state.
I found a workaround by first openening a "normal" reference to the VI, questioning the Exec.State property, closing the reference and opening the "typed" reference. That works like I think it should.
My question: Is this difference in behaviour of the "VI" property node and the "VI Interface Type 1" property node by design or is this a bug in LV 2012 (I have not tested it with another version) ?
MatthiasI just wanted to point out about the very reason of the situation:
These are the options you can read by the Execution State property. As already marked, "Running" indicates that the VI is (at least) reserved for execcution. It does not necessarily mean that the VI is actually executing!
That being said, opening a typified reference to the VI already reserves the VI for running, hence your property node returns this value.
Your workaround seems to be well-thought out and should work in any case. Y already gave another option of handling this situation.
I doubt that there is another, better solution other to these two.
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it. -
Hi
I am beginner in Oracle. I want some help in joining two tables and adding a new attribute to the resulting table
For xample:
Table Name: Texas*
Ename Enumber Sal
John 1 10
Akl 2 20
Renka 3 25
Table Name: California_
Ename Enumber Sal
Rada 4 15
Paul 5 16
Mikler 6 12
Now I want to join these Tables Texas and California and I want to Add Another attribute to the resulting table State
Table Name: Emplyee_
Ename Enumber Sal State
John 1 10 Texas
Akl 2 20 Texas
Renka 3 25 Texas
Rada 4 15 California
Paul 5 16 California
Mikler 6 12 California
Thanks in advance
Santosh
Edited by: user10904473 on Mar 29, 2009 2:45 PMAre you sure you want to join the tables? It seems like you want to UNION them
SELECT ename, enumber, sal, 'Texas' state
FROM texas
UNION ALL
SELECT ename, enumber, sal, 'California' state
FROM californiaOf course, having different tables for different states is a very poor way to model employee data, so I'd strongly suggest fixing that problem if these are real tables rather than a school assignment.
Justin -
Join two table using two link field
hi all
i need to left join two table, and to link two table need to match two field
ex: the link field is store_name and id
i use below sql statement
SELECT A1.store_name, A1.id, A1.card, A2.sale, A2.history
FROM Georgraphy A1, Store_Information A2
WHERE A1.store_name = A2.store_name(+)
AND A1.id = A2.id(+)
but it's wrong
please tell me how to left join A1 and A2, thx!Whats your aim?
Any error message?
SQL> select * from geography;
ID STORE_NAME
1 a
1 b
2 a
2 b
SQL> select * from store_information;
ID STORE_NAME
1 a
3 d
SQL> SELECT *
2 FROM Geography A1, Store_Information A2
3 WHERE A1.store_name = A2.store_name(+)
4 AND A1.id = A2.id(+);
ID STORE_NAME ID STORE_NAME
1 a 1 a
2 a
2 b
1 b -
Join two xmltype table using Xquery
I am wondering how to join two xmltype tables in xml db database. both tables are schema based object-relational tables.
these are the examples:
academicProgram table contain batch of academicprogram.xml entries
<academicProgram>
<listOfCourse>
<course><id>1</id></course>
<course><id>2</id></course>
</listOfCourse>
</academicProgram>
course table contain all the course entries, each of them is an xml file based on the the course schema. for example,
course1.xml
<course>
<id>1</id>
<title>xxxxxxx</title>
<description>xxxxxxxxxxxxxx</description>
</course>
I used the following xquery code to merge the detailed course information from course table to the academic program information
select *
from XMLTable(
for $program in ora:view("HTU", "ACADEMICPROGRAM")
return <academicProgram xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"
for $node in $program/academicProgram/node()
return if (name($node) eq "listOfCourse")
then (
<listOfCourse>{
for $i in $node/course
for $j in ora:view("HTU", "COURSE")/course
where $i/id eq $j/id
return $j
}</listOfCourse>
else $node
</academicProgram>
it did return what I want, but the problem is it take more than 5 minutes to finish. is there someway to make it run faster? I have been struggling for a week, please help.
thanks in advance.
HailiDoes this work...
SQL> var schemaURL varchar2(256)
SQL> var schemaPath varchar2(256)
SQL> --
SQL> set autotrace on explain
SQL> set lines 150 pages 0 long 10000
SQL> --
SQL> begin
2 :schemaURL := 'http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/custom.xsd';
3 :schemaPath := '/public/custom.xsd';
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> call dbms_xmlSchema.deleteSchema(:schemaURL,4)
2 /
Call completed.
SQL> declare
2 res boolean;
3 xmlSchema xmlType := xmlType(
4 '<xs:schema xmlns:apcustom="http://www.mdanderson.org/schema/APEP/custom" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="
http://www.mdanderson.org/schema/APEP/custom" elementFormDefault="qualified" attributeFormDefault="unqualified">
5 <xs:element name="CourseCatalogCustomDataType">
6 <xs:annotation>
7 <xs:documentation>Comment describing your root element</xs:documentation>
8 </xs:annotation>
9 </xs:element>
10 </xs:schema>');
11 begin
12 if (dbms_xdb.existsResource(:schemaPath)) then
13 dbms_xdb.deleteResource(:schemaPath);
14 end if;
15 res := dbms_xdb.createResource(:schemaPath,xmlSchema);
16 end;
17 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_xmlschema.registerSchema
3 (
4 :schemaURL,
5 xdbURIType(:schemaPath).getClob(),
6 TRUE,TRUE,FALSE,TRUE
7 );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> begin
2 :schemaURL := 'http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd';
3 :schemaPath := '/public/courseCatalog.xsd';
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> call dbms_xmlSchema.deleteSchema(:schemaURL,4)
2 /
Call completed.
SQL> declare
2 res boolean;
3 xmlSchema xmlType := xmlType(
4 '<?xml version="1.0" encoding="UTF-8"?>
5 <!-- edited with XMLSpy v2006 rel. 3 U (http://www.altova.com) by John Grossman (UT MD Anderson Cancer Center)
6 -->
7 <xs:schema xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:xs="http://www.w3.
org/2001/XMLSchema" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" targetNamespace="http://www.mdanderson.org/schema/APEP/courseCa
talog" elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:storeVarrayAsTable="true">
8 <xs:import namespace="http://www.mdanderson.org/schema/APEP/custom" schemaLocation="http://aahmb10-147:7575/public/www.mdanderson.or
g/schema/APEP/custom.xsd"/>
9 <!-- ######################################## -->
10 <!-- GLOBAL ELEMENTS -->
11 <!-- ######################################## -->
12 <xs:element name="course" type="CourseType" xdb:defaultTable="COURSE">
13 <xs:annotation>
14 <xs:documentation>Comment describing your root element</xs:documentation>
15 </xs:annotation>
16 </xs:element>
17 <xs:element name="listOfCourse" type="ListOfCourseType" xdb:defaultTable="COURSELIST"/>
18 <xs:element name="courseCatalog" type="CourseCatalogType" xdb:defaultTable="COURSECATALOG"/>
19 <!-- ######################################## -->
20 <!-- GLOBAL TYPES -->
21 <!-- ######################################## -->
22 <xs:complexType name="CompositeIDType" xdb:SQLType="COURSE_COMPOSITEID_T">
23 <xs:sequence>
24 <xs:element name="prefix" xdb:SQLName="PREFIX">
25 <xs:simpleType>
26 <xs:restriction base="xs:string">
27 <xs:length value="2"/>
28 </xs:restriction>
29 </xs:simpleType>
30 </xs:element>
31 <xs:element name="level" type="xs:positiveInteger" xdb:SQLName="COURSELEVEL"/>
32 <xs:element name="creditHours" type="xs:positiveInteger" xdb:SQLName="CREDITHOURS"/>
33 <xs:element name="identNumber" xdb:SQLName="IDENTNUMBER">
34 <xs:simpleType>
35 <xs:restriction base="xs:string">
36 <xs:length value="2"/>
37 </xs:restriction>
38 </xs:simpleType>
39 </xs:element>
40 </xs:sequence>
41 </xs:complexType>
42 <xs:complexType name="CourseType" xdb:SQLType="COURSE_T">
43 <xs:sequence>
44 <xs:element name="id" type="xs:integer" minOccurs="0" xdb:SQLName="ID"/>
45 <xs:element name="compositeID" type="CompositeIDType" minOccurs="0" xdb:SQLName="COMPOSITEID"/>
46 <xs:element name="title" type="xs:string" minOccurs="0" xdb:SQLName="TITLE"/>
47 <xs:element name="description" type="xs:string" minOccurs="0" xdb:SQLName="DESCRIPTION"/>
48 <xs:element name="corequisite" type="CompositeIDType" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="COREQUISITE"
xdb:defaultTable=""/>
49 <xs:element name="prerequisite" type="CompositeIDType" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="PREREQUISITE
" xdb:defaultTable=""/>
50 <xs:element name="availability" minOccurs="0" xdb:SQLName="AVAILABILITY">
51 <xs:complexType>
52 <xs:sequence>
53 <xs:element name="startDate" type="xs:date" minOccurs="0" xdb:SQLName="STARTDATE"/>
54 <xs:element name="endDate" type="xs:date" minOccurs="0" xdb:SQLName="ENDDATE"/>
55 </xs:sequence>
56 </xs:complexType>
57 </xs:element>
58 </xs:sequence>
59 </xs:complexType>
60 <xs:complexType name="ListOfCourseType" xdb:SQLType="COURSE_LIST_T">
61 <xs:sequence minOccurs="0" maxOccurs="unbounded">
62 <xs:element name="id" type="xs:positiveInteger" minOccurs="0" xdb:SQLName="ID"/>
63 <xs:element ref="course" minOccurs="0"/>
64 </xs:sequence>
65 </xs:complexType>
66 <xs:complexType name="CourseCatalogType" xdb:SQLType="COURSE_CATALOG_T">
67 <xs:sequence minOccurs="0">
68 <xs:element name="id" type="xs:positiveInteger" minOccurs="0" xdb:SQLName="ID"/>
69 <xs:element ref="listOfCourse" minOccurs="0"/>
70 </xs:sequence>
71 </xs:complexType>
72 </xs:schema>');
73 begin
74 if (dbms_xdb.existsResource(:schemaPath)) then
75 dbms_xdb.deleteResource(:schemaPath);
76 end if;
77 res := dbms_xdb.createResource(:schemaPath,xmlSchema);
78 end;
79 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_xmlschema.registerSchema
3 (
4 :schemaURL,
5 xdbURIType(:schemaPath).getClob(),
6 TRUE,TRUE,FALSE,TRUE
7 );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> begin
2 :schemaURL := 'http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/academicProgram.xsd';
3 :schemaPath := '/public/academicProgram.xsd';
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> call dbms_xmlSchema.deleteSchema(:schemaURL,4)
2 /
Call completed.
SQL> declare
2 res boolean;
3 xmlSchema xmlType := xmlType(
4 '<?xml version="1.0" encoding="WINDOWS-1252"?>
5 <!-- edited with XMLSpy v2006 rel. 3 U (http://www.altova.com) by John Grossman (UT MD Anderson Cancer Center) -->
6 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:ap="http://www.mdanderson.org/sche
ma/APEP/courseCatalog" targetNamespace="http://www.mdanderson.org/schema/APEP/courseCatalog" elementFormDefault="qualified" attributeFormDef
ault="unqualified" xdb:storeVarrayAsTable="true">
7 <xs:include schemaLocation="http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd" />
8 <!-- ######################################## -->
9 <!-- GLOBAL ELEMENTS -->
10 <!-- ######################################## -->
11 <xs:element name="academicProgram" type="ap:AcademicProgramType" xdb:defaultTable="ACADEMICPROGRAM">
12 <xs:annotation>
13 <xs:documentation>Comment describing your root element</xs:documentation>
14 </xs:annotation>
15 </xs:element>
16 <!-- ######################################## -->
17 <!-- GLOBAL Types -->
18 <!-- ######################################## -->
19 <xs:complexType name="ListOfAcademicCredentialType" xdb:SQLType="ACADEMICCREDENTIAL_LIST_T">
20 <xs:sequence minOccurs="0" maxOccurs="unbounded">
21 <xs:element name="credential" type="ap:AcademicCredentialType" minOccurs="0" xdb:SQLName="CREDENTIAL"/>
22 </xs:sequence>
23 </xs:complexType>
24 <xs:complexType name="AcademicCredentialType" xdb:SQLType="ACADEMICCREDENTIAL_T">
25 <xs:sequence minOccurs="0">
26 <xs:element name="id" type="xs:integer" minOccurs="0" xdb:SQLName="ID"/>
27 <xs:element name="field" type="xs:string" minOccurs="0" xdb:SQLName="FIELD">
28 <xs:annotation>
29 <xs:documentation>Academic or professional field for which the credential is granted. Example: Clini
ical Laboratory Science</xs:documentation>
30 </xs:annotation>
31 </xs:element>
32 <xs:element name="typeCode" minOccurs="0" xdb:SQLName="TYPECODE">
33 <xs:annotation>
34 <xs:documentation>The type of credential. Example: Bachelor of Science</xs:documentation>
35 </xs:annotation>
36 <xs:simpleType>
37 <xs:restriction base="xs:string">
38 <xs:enumeration value="Bachelor of Science Degree"/>
39 <xs:enumeration value="Certificate"/>
40 </xs:restriction>
41 </xs:simpleType>
42 </xs:element>
43 </xs:sequence>
44 </xs:complexType>
45 <xs:complexType name="RequirementType" xdb:SQLType="ACADEMICPROGRAM_REQ_T">
46 <xs:sequence minOccurs="0">
47 <xs:element name="typeCode" type="xs:string" minOccurs="0" xdb:SQLName="TYPECODE"/>
48 <xs:element name="description" type="xs:string" minOccurs="0" xdb:SQLName="DESCRIPTION"/>
49 <xs:element name="scope" type="xs:string" minOccurs="0" xdb:SQLName="SCOPE"/>
50 </xs:sequence>
51 </xs:complexType>
52 <xs:complexType name="ListOfRequirementType" xdb:SQLType="ACADEMICPROGRAM_REQ_L_T">
53 <xs:sequence minOccurs="0">
54 <xs:element name="requirement" type="ap:RequirementType" minOccurs="0" xdb:SQLName="REQUIREMENT"/>
55 </xs:sequence>
56 </xs:complexType>
57 <xs:complexType name="AcademicProgramType" xdb:SQLType="ACADEMICPROGRAM_T">
58 <xs:sequence>
59 <xs:element name="name" type="xs:string" minOccurs="0" xdb:SQLName="NAME"/>
60 <xs:element name="description" type="xs:string" minOccurs="0" xdb:SQLName="DESCRIPTION"/>
61 <xs:element name="listOfAcademicCredential" type="ap:ListOfAcademicCredentialType" minOccurs="0"/>
62 <xs:element name="listOfRelatedParty" minOccurs="0" xdb:SQLName="LISTOFRELATEDPARTY"/>
63 <xs:element name="mission" type="xs:string" minOccurs="0" xdb:SQLName="MISSION"/>
64 <xs:element name="goals" type="xs:string" minOccurs="0" xdb:SQLName="GOAL"/>
65 <xs:element name="objectives" type="xs:string" minOccurs="0" xdb:SQLName="OBJECTIVES"/>
66 <xs:element name="competencies" minOccurs="0" xdb:SQLName="COMPETENCIES"/>
67 <xs:element name="selectionProcess" minOccurs="0" xdb:SQLName="SELECTIONPROCESS"/>
68 <xs:element name="listOfRequirement" type="ap:ListOfRequirementType" minOccurs="0"/>
69 <xs:element name="evaluationCriteria" minOccurs="0" xdb:SQLName="EVALUATIONCRITERIA"/>
70 <xs:element name="postBaccDegreeInfo" minOccurs="0" xdb:SQLName="POSTBACCDEGREEINFO"/>
71 <xs:element name="postBaccCertificateInfo" minOccurs="0" xdb:SQLName="POSTBACCCERTIFICATEINFO"/>
72 <xs:element name="advancedPlacement" minOccurs="0" xdb:SQLName="ADVANCEDPLACEMENT"/>
73 <xs:element name="graduation" minOccurs="0" xdb:SQLName="GRADUATION"/>
74 <xs:element name="curriculum" minOccurs="0" xdb:SQLName="CURRICULUM"/>
75 <xs:element name="listOfCourse" type="ap:ListOfCourseType" minOccurs="0" xdb:SQLName="LISTOFCOURSE"/>
76 </xs:sequence>
77 </xs:complexType>
78 </xs:schema>
79 ');
80 begin
81 if (dbms_xdb.existsResource(:schemaPath)) then
82 dbms_xdb.deleteResource(:schemaPath);
83 end if;
84 res := dbms_xdb.createResource(:schemaPath,xmlSchema);
85 end;
86 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_xmlschema.registerSchema
3 (
4 :schemaURL,
5 xdbURIType(:schemaPath).getClob(),
6 TRUE,TRUE,FALSE,TRUE
7 );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> insert into COURSE values ( xmltype(
2 '<?xml version="1.0" encoding="WINDOWS-1252"?>
3 <?altova_sps http://aahmb10-147:7575/public/www.mdanderson.org/template/APEP/courseInput.sps?>
4 <course xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb=
"http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/schema/APE
P/courseCatalog http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd">
5 <id>53</id>
6 <compositeID>
7 <prefix>CL</prefix>
8 <level>4</level>
9 <creditHours>1</creditHours>
10 <identNumber>05</identNumber>
11 </compositeID>
12 <title>Urinalysis </title>
13 <description>A review of the anatomy and physiology of the kidney and the formation, elimination, and composition of urine and body flu
ids. Interpretation of urinary elements, chemical assays, and the correlation with normal and abnormal physiology.</description>
14 </course>'))
15 /
1 row created.
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
SQL> insert into COURSE values ( xmltype(
2 '<?xml version="1.0" encoding="WINDOWS-1252"?>
3 <?altova_sps http://aahmb10-147:7575/public/www.mdanderson.org/template/APEP/courseInput.sps?>
4 <course xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb=
"http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/schema/APE
P/courseCatalog http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd">
5 <id>54</id>
6 <compositeID>
7 <prefix>CL</prefix>
8 <level>4</level>
9 <creditHours>1</creditHours>
10 <identNumber>05</identNumber>
11 </compositeID>
12 <title>Course 54</title>
13 <description>A review of the anatomy and physiology of the kidney and the formation, elimination, and composition of urine and body flu
ids. Interpretation of urinary elements, chemical assays, and the correlation with normal and abnormal physiology.</description>
14 </course>'))
15 /
1 row created.
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
SQL> insert into COURSE values ( xmltype(
2 '<?xml version="1.0" encoding="WINDOWS-1252"?>
3 <?altova_sps http://aahmb10-147:7575/public/www.mdanderson.org/template/APEP/courseInput.sps?>
4 <course xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb=
"http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/schema/APE
P/courseCatalog http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd">
5 <id>55</id>
6 <compositeID>
7 <prefix>CL</prefix>
8 <level>4</level>
9 <creditHours>1</creditHours>
10 <identNumber>05</identNumber>
11 </compositeID>
12 <title>Course 55</title>
13 <description>A review of the anatomy and physiology of the kidney and the formation, elimination, and composition of urine and body flu
ids. Interpretation of urinary elements, chemical assays, and the correlation with normal and abnormal physiology.</description>
14 </course>'))
15 /
1 row created.
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
SQL> insert into ACADEMICPROGRAM values ( xmltype (
2 '<?xml version="1.0" encoding="WINDOWS-1252"?>
3 <!--Sample XML file generated by XMLSpy v2006 rel. 3 U (http://www.altova.com)-->
4 <academicProgram xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" x
mlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/s
chema/APEP/courseCatalog http://aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/academicProgram.xsd">
5 <name>Clinical Laboratory Science</name>
6 <description>The clinical laboratory scientist is an essential member of the health care team, performing a myriad of laboratory proc
edures aimed at the diagnosis and treatment of disease.</description>
7 <listOfAcademicCredential>
8 <credential>
9 <id>0</id>
10 <field>String</field>
11 <typeCode>Bachelor of Science Degree</typeCode>
12 </credential>
13 <credential>
14 <id>0</id>
15 <field>String</field>
16 <typeCode>Bachelor of Science Degree</typeCode>
17 </credential>
18 <credential>
19 <id>0</id>
20 <field>String</field>
21 <typeCode>Bachelor of Science Degree</typeCode>
22 </credential>
23 </listOfAcademicCredential>
24 <listOfRelatedParty xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
25 <mission>String</mission>
26 <goals>String</goals>
27 <objectives>String</objectives>
28 <competencies xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
29 <selectionProcess xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
30 <listOfRequirement>
31 <requirement>
32 <typeCode>String</typeCode>
33 <description>String</description>
34 <scope>String</scope>
35 </requirement>
36 </listOfRequirement>
37 <evaluationCriteria xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
38 <postBaccDegreeInfo xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
39 <postBaccCertificateInfo xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
40 <advancedPlacement xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
41 <graduation xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
42 <curriculum xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
43 <listOfCourse>
44 <id>53</id>
45 <course>
46 <id>53</id>
47 <compositeID>
48 <prefix>CL</prefix>
49 <level>4</level>
50 <creditHours>1</creditHours>
51 <identNumber>05</identNumber>
52 </compositeID>
53 <title>Biochemistry</title>
54 <description>this is a test for the course biochemistry</description>
55 </course>
56 <course>
57 <id>55</id>
58 <compositeID>
59 <prefix>CL</prefix>
60 <level>4</level>
61 <creditHours>1</creditHours>
62 <identNumber>05</identNumber>
63 </compositeID>
64 <title>Something Else</title>
65 <description>this is a test for the course biochemistry</description>
66 </course>
67 </listOfCourse>
68 </academicProgram>'))
69 /
1 row created.
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
SQL> select extractValue(value(c),'/course/id')
2 from ACADEMICPROGRAM ap,
3 table (xmlsequence(extract(value(ap),'/academicProgram/listOfCourse/course','xmlns="http://www.mdanderson.org/schema/APEP/courseCatalo
g"'))) c
4 /
53
55
Execution Plan
Plan hash value: 3351541143
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 2 | 126 | 804 (0)| 00:00:10 |
| 1 | NESTED LOOPS | | 2 | 126 | 804 (0)| 00:00:10 |
|* 2 | INDEX FAST FULL SCAN | SYS_IOT_TOP_177341 | 2 | 66 | 802 (0)| 00:00:10 |
|* 3 | TABLE ACCESS BY INDEX ROWID| ACADEMICPROGRAM | 1 | 30 | 1 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | SYS_C0022632 | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("SYS_NC_TYPEID$" IS NOT NULL)
3 - filter(SYS_CHECKACL("ACLOID","OWNERID",xmltype('<privilege
xmlns="http://xmlns.oracle.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
tance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd
http://xmlns.oracle.com/xdb/acl.xsd DAV:http://xmlns.oracle.com/xdb/dav.xsd"><read-properti
es/><read-contents/></privilege>'))=1)
4 - access("NESTED_TABLE_ID"="ACADEMICPROGRAM"."SYS_NC0004200043$")
Note
- dynamic sampling used for this statement
SQL> select updateXML
2 (
3 ap.object_value,
4 '/academicProgram/listOfCourse',
5 ( select xmlelement
6 (
7 "listOfCourse",
8 xmlattributes('http://www.mdanderson.org/schema/APEP/courseCatalog' as "xmlns"),
9 ( select xmlagg ( xmlconcat(extract(object_value,'/course/id'), extract(object_value,'/course')) )
10 from course c,
11 table (xmlsequence(extract(ap.object_value,'/academicProgram/listOfCourse/course','xmlns="http://www.mdanders
on.org/schema/APEP/courseCatalog"'))) api
12 where extractValue(c.object_value,'/course/id') = extractValue(value(api),'/course/id')
13 )
14 ) from dual
15 ),
16 'xmlns:="http://www.mdanderson.org/schema/APEP/courseCatalog"'
17 )
18 from ACADEMICPROGRAM ap
19 /
<?xml version="1.0" encoding="WINDOWS-1252"?>
<!--Sample XML file generated by XMLSpy v2006 rel. 3 U (http://www.altova.com)--><academicProgram xmlns="http://www.mdanderson.org/schema/AP
EP/courseC
atalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/X
MLSchema-i
nstance" xsi:schemaLocation="http://www.mdanderson.org/schema/APEP/courseCatalog http://aahmb10-147:7575/public/www.mdanderson.org/schema/AP
EP/academi
cProgram.xsd">
<name>Clinical Laboratory Science</name>
<description>The clinical laboratory scientist is an essential member of the health care team, performing a myriad of laboratory procedure
s aimed at
the diagnosis and treatment of disease.</description>
<listOfAcademicCredential>
<credential>
<id>0</id>
<field>String</field>
<typeCode>Bachelor of Science Degree</typeCode>
</credential>
<credential>
<id>0</id>
<field>String</field>
<typeCode>Bachelor of Science Degree</typeCode>
</credential>
<credential>
<id>0</id>
<field>String</field>
<typeCode>Bachelor of Science Degree</typeCode>
</credential>
</listOfAcademicCredential>
<listOfRelatedParty xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<mission>String</mission>
<goals>String</goals>
<objectives>String</objectives>
<competencies xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<selectionProcess xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<listOfRequirement>
<requirement>
<typeCode>String</typeCode>
<description>String</description>
<scope>String</scope>
</requirement>
</listOfRequirement>
<evaluationCriteria xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<postBaccDegreeInfo xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<postBaccCertificateInfo xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<advancedPlacement xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<graduation xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<curriculum xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog"/>
<listOfCourse xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog">
<id xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog">53</id>
<course xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb="
http://xml
ns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/schema/APEP/courseCat
alog http:
//aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd">
<id>53</id>
<compositeID>
<prefix>CL</prefix>
<level>4</level>
<creditHours>1</creditHours>
<identNumber>05</identNumber>
</compositeID>
<title>Urinalysis </title>
<description>A review of the anatomy and physiology of the kidney and the formation, elimination, and composition of urine and body fl
uids. Inte
rpretation of urinary elements, chemical assays, and the correlation with normal and abnormal physiology.</description>
</course>
<id xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog">55</id>
<course xmlns="http://www.mdanderson.org/schema/APEP/courseCatalog" xmlns:ns1="http://www.mdanderson.org/schema/APEP/custom" xmlns:xdb="
http://xml
ns.oracle.com/xdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mdanderson.org/schema/APEP/courseCat
alog http:
//aahmb10-147:7575/public/www.mdanderson.org/schema/APEP/courseCatalog.xsd">
<id>55</id>
<compositeID>
<prefix>CL</prefix>
<level>4</level>
<creditHours>1</creditHours>
<identNumber>05</identNumber>
</compositeID>
<title>Course 55</title>
<description>A review of the anatomy and physiology of the kidney and the formation, elimination, and composition of urine and body fl
uids. Inte
rpretation of urinary elements, chemical assays, and the correlation with normal and abnormal physiology.</description>
</course>
</listOfCourse>
</academicProgram>
Execution Plan
Plan hash value: 1698158615
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 47932 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 13818 | | |
|* 2 | HASH JOIN | | 1 | 13818 | 5 (20)| 00:00:01 |
|* 3 | INDEX RANGE SCAN | SYS_IOT_TOP_177341 | 1 | 33 | 2 (0)| 00:00:01 |
|* 4 | TABLE ACCESS FULL| COURSE | 3 | 41355 | 3 (0)| 00:00:01 |
| 5 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
|* 6 | TABLE ACCESS FULL | ACADEMICPROGRAM | 1 | 47932 | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("COURSE"."SYS_NC00009$"="ID")
3 - access("NESTED_TABLE_ID"=:B1)
filter("SYS_NC_TYPEID$" IS NOT NULL)
4 - filter(SYS_CHECKACL("ACLOID","OWNERID",xmltype('<privilege
xmlns="http://xmlns.oracle.com/xdb/acl.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd
http://xmlns.oracle.com/xdb/acl.xsd DAV:http://xmlns.oracle.com/xdb/dav.xsd"><read
-properties/><read-contents/></privilege>'))=1)
6 - filter(SYS_CHECKACL("ACLOID","OWNERID",xmltype('<privilege
xmlns="http://xmlns.oracle.com/xdb/acl.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd
http://xmlns.oracle.com/xdb/acl.xsd DAV:http://xmlns.oracle.com/xdb/dav.xsd"><read
-properties/><read-contents/></privilege>'))=1)
Note
- dynamic sampling used for this statement
SQL> -
Joining two tables using PL/SQL
here i am trying to join two tables can any one tell me what is wrong with this syntex
CREATE OR REPLACE PROCEDURE test IS
CURSOR c1 IS SELECT seq,fname,lname from t1;
CURSOR c2 IS SELECT seq1,q,a from t2;
userjob number;
BEGIN
OPEN c1;
insert into t3 values(c1.seq,c1.fname,c1.lname);
FETCH c1.seq INTO userjob;
FOR c1rec IN c2 LOOP
IF (c1rec.seq=c1.seq and c1rec.q1='why') THEN
insert into t3 values(c1rec.q1,c1rec.a1);
elsif (c1rec.seq=c1.seq and c1rec.q1='what') then
insert into t3 values(c1rec.q2,c1rec.a2);
elsif (c1rec.seq=c1.seq and c1rec.q1='when') then
insert into t3 values(c1rec.q3,c1rec.a3);
elsif (c1rec.seq=c1.seq and c1rec.q1='where') then
insert into t3 values(c1rec.q4,c1rec.a4);
END IF;
END LOOP;
END;
/You should always fetch a cursor before using it's values. All columns in the select should be fetched into variables or a record-variable. You can't refer to the cursor-columns values with c1.seq etc.
r1 c1%rowtype;
l_found boolean;
BEGIN
OPEN c1;
FETCH c1 INTO r1;
insert into t3 values(r1.seq,r1.fname,r1.lname);
l_found := c1%found;
close c1;
if l_found
then
It is also better to close the cursor and check if the select resulted in a row. With this code you will only retrieve one row even if the select will result in multiple rows.
But I agree with all the others that this can probably be done more efficiently with one SQL statement.
Maybe you are looking for
-
MB04 - recebimento de dois lotes para um material
Pessoal, Estamos recebendo uma nota fiscal de consumo de componentes pela MB04 porém para um item há 2 lotes. Há como lançar isto com o mesmo comportamento da MIGO ? Grato, Ale
-
Error running a project in JBuilder6
hi, when i run my application i get the next message: java.io.IOException: CreateProcess: javaw -classpath "..." pruebas.Prueba2 error=267 anybody knows what kind of error is 267? thanks bye
-
Indexes missing in the database
hello gurus Missing indexes. Check of 23.04.2007 20:11:16 Indexes missing in the database Primary indexes 0 Secondary indexes 6 /BIC/F100067-160 /BIC/F100067
-
my phone turns on but turns off again when the apple logo come appears. What will I do? Please help.
-
Adding new field in output layout in transaction ME2N
I would like to know if it is possible to add new fields in the output layout of transaction ME2N. For example field EKPO-AFNAM (Requisitioner) that in the standard layout is not used. Thanks a lot Melih