Sql tool kit + base multi-table
Bonjour,
Je cherche à attaquer une base contenant plusieurs table avec le SQL tool kit.
Seulement, je voudrais écrire une fonction générique qui me permette de trouver le nom des tables présentes dans la base (qui par définition du besoin doit être dynamique).
En effet, par la suite, mon soft pourra créer de nouvelles tables, suivant les attentes des utilisateurs.
Mon problème est donc que je ne connais pas encore les noms des tables qui seront créées.
J'aurais juste besoin au lancement de mon soft, une routine qui attaque la base de données et me retourne le nom de toutes les tables présentes dans cette dernière.
Quelqu'un aurait-il une solution?
Merci
Résolu !
Accéder à la solution.
Je commence à désespérer.
J'ai essayer les fonctions data sources informations et rien ne fais.
Je pensais pourtant que la fonction DBTables servait à ça.
J'ai beau la triturer dans tous les sens, elle me donne que des renseignements sur la database.
Je n'arrive pas à récupérer les noms de toutes les tables présentes dans la base. Même aucun nom d'ailleurs.
si quelqu'un à une solution ou des indications à me donner, je suis preneur ;-)
Cdlt,
Similar Messages
-
How to create a table in mysql tool kit
Hello Sir/Madam,
H
How to create a table in mysql using the labview tool kit,,,I need the hyperlink to download this tool kit,
Thanks and regards
Jack
Jayavelquick search
study and ask if further specific help needed -
MAP Toolkit - How to use this MAP tool kit for all SQL Server inventory in new work enviornment
Hi Every one
Just joined to new job and planning to do Inventory for whole environment so I can get list of all SQL Server installed . I downloaded MAP tool kit just now. So looking for step by step information to use this for SQL Inventory. If anyone have documentation
or screen shot and can share would be great.
Also like to run It will be good to run this tool anytime or should run in night time when is less activity?
Hoe long generally takes for medium size environment where server count is about 30 ( Dev/Staging/Prod)
Also any scripts that will give detailed information would be great too..
Thank you
Please Mark As Answer if it is helpful. \\Aim To Inspire Rather to Teach A.ShahHi Logicinisde,
According to your description, since the issue regards Microsoft Assessment and Planning Solution Accelerator. I suggestion you post the question in the Solution Accelerators forums at
http://social.technet.microsoft.com/Forums/en-US/map/threads/ . It is appropriate and more experts will assist you.
The Microsoft Assessment and Planning (MAP) Toolkit is an agentless inventory, assessment, and reporting tool that can securely assess IT environments for various platform migrations. You can use MAP as part of a comprehensive process for planning and migrating
legacy database to SQL Server instances.
There is more information about how to use MAP Tool–Microsoft Assessment and Planning toolkit, you can review the following articles.
http://blogs.technet.com/b/meamcs/archive/2012/09/24/how-to-use-map-tool-microsoft-assessment-and-planning-toolkit.aspx
Microsoft Assessment and Planning Toolkit - Technical FAQ:
http://ochoco.blogspot.in/2009/02/microsoft-assessment-and-planning.html
Regards,
Sofiya Li
Sofiya Li
TechNet Community Support -
How to install PL/SQL web tool kit for designer 6i
HI,
I was going through the tutorial supplied by the evaluation
version of Designer provided at OTN. there it required PL/SQL
web tool kit to be installed, but when I run the web tool kit
generator, it gives me error.
Where can I find the PL/SQL web tool kit, which I can install in
the database directly, I don't want to install Oracle 9iAS. As I
know web tool kit is available in it.
SreekantTo run WEB PL/SQL in Desgner, you just need to run the following
package in databse user, where you want all your schema objects
to be:
<<Designer Home>>\Cgenw61\Cvwetc\Wsgl.sql
After this, just create a DAD entry with a Database Connector
pointing to this schema where you have run the script and things
will work fine.
Vishal -
SQL+-MULTI TABLE QUERY PROBLEM
HAI ALL,
ANY SUGGESTION PLEASE?
SUB: SQL+-MULTI TABLE QUERY PROBLEM
SQL+ QUERY GIVEN:
SELECT PATIENT_NUM, PATIENT_NAME, HMTLY_TEST_NAME, HMTLY_RBC_VALUE,
HMTLY_RBC_NORMAL_VALUE, DLC_TEST_NAME, DLC_POLYMORPHS_VALUE,
DLC_POLYMORPHS_NORMAL_VALUE FROM PATIENTS_MASTER1, HAEMATOLOGY1,
DIFFERENTIAL_LEUCOCYTE_COUNT1
WHERE PATIENT_NUM = HMTLY_PATIENT_NUM AND PATIENT_NUM = DLC_PATIENT_NUM AND PATIENT_NUM
= &PATIENT_NUM;
RESULT GOT:
&PATIENT_NUM =1
no rows selected
&PATIENT_NUM=2
no rows selected
&PATIENT_NUM=3
PATIENT_NUM 3
PATIENT_NAME KKKK
HMTLY_TEST_NAME HAEMATOLOGY
HMTLY_RBC_VALUE 4
HMTLY_RBC_NORMAL 4.6-6.0
DLC_TEST_NAME DIFFERENTIAL LEUCOCYTE COUNT
DLC_POLYMORPHS_VALUE 60
DLC_POLYMORPHS_NORMAL_VALUE 40-65
ACTUAL WILL BE:
&PATIENT_NUM=1
PATIENT_NUM 1
PATIENT_NAME BBBB
HMTLY_TEST_NAME HAEMATOLOGY
HMTLY_RBC_VALUE 5
HMTLY_RBC_NORMAL 4.6-6.0
&PATIENT_NUM=2
PATIENT_NUM 2
PATIENT_NAME GGGG
DLC_TEST_NAME DIFFERENTIAL LEUCOCYTE COUNT
DLC_POLYMORPHS_VALUE 42
DLC_POLYMORPHS_NORMAL_VALUE 40-65
&PATIENT_NUM=3
PATIENT_NUM 3
PATIENT_NAME KKKK
HMTLY_TEST_NAME HAEMATOLOGY
HMTLY_RBC_VALUE 4
HMTLY_RBC_NORMAL 4.6-6.0
DLC_TEST_NAME DIFFERENTIAL LEUCOCYTE COUNT
DLC_POLYMORPHS_VALUE 60
DLC_POLYMORPHS_NORMAL_VALUE 40-65
4 TABLES FOR CLINICAL LAB FOR INPUT DATA AND GET REPORT ONLY FOR TESTS MADE FOR PARTICULAR
PATIENT.
TABLE1:PATIENTS_MASTER1
COLUMNS:PATIENT_NUM, PATIENT_NAME,
VALUES:
PATIENT_NUM
1
2
3
4
PATIENT_NAME
BBBB
GGGG
KKKK
PPPP
TABLE2:TESTS_MASTER1
COLUMNS:TEST_NUM, TEST_NAME
VALUES:
TEST_NUM
1
2
TEST_NAME
HAEMATOLOGY
DIFFERENTIAL LEUCOCYTE COUNT
TABLE3:HAEMATOLOGY1
COLUMNS:
HMTLY_NUM,HMTLY_PATIENT_NUM,HMTLY_TEST_NAME,HMTLY_RBC_VALUE,HMTLY_RBC_NORMAL_VALUE
VALUES:
HMTLY_NUM
1
2
HMTLY_PATIENT_NUM
1
3
MTLY_TEST_NAME
HAEMATOLOGY
HAEMATOLOGY
HMTLY_RBC_VALUE
5
4
HMTLY_RBC_NORMAL_VALUE
4.6-6.0
4.6-6.0
TABLE4:DIFFERENTIAL_LEUCOCYTE_COUNT1
COLUMNS:DLC_NUM,DLC_PATIENT_NUM,DLC_TEST_NAME,DLC_POLYMORPHS_VALUE,DLC_POLYMORPHS_
NORMAL_VALUE,
VALUES:
DLC_NUM
1
2
DLC_PATIENT_NUM
2
3
DLC_TEST_NAME
DIFFERENTIAL LEUCOCYTE COUNT
DIFFERENTIAL LEUCOCYTE COUNT
DLC_POLYMORPHS_VALUE
42
60
DLC_POLYMORPHS_NORMAL_VALUE
40-65
40-65
THANKS
RCS
E-MAIL:[email protected]
--------I think you want an OUTER JOIN
SELECT PATIENT_NUM, PATIENT_NAME, HMTLY_TEST_NAME, HMTLY_RBC_VALUE,
HMTLY_RBC_NORMAL_VALUE, DLC_TEST_NAME, DLC_POLYMORPHS_VALUE,
DLC_POLYMORPHS_NORMAL_VALUE
FROM PATIENTS_MASTER1, HAEMATOLOGY1, DIFFERENTIAL_LEUCOCYTE_COUNT1
WHERE PATIENT_NUM = HMTLY_PATIENT_NUM (+)
AND PATIENT_NUM = DLC_PATIENT_NUM (+)
AND PATIENT_NUM = &PATIENT_NUM;Edited by: shoblock on Nov 5, 2008 12:17 PM
outer join marks became stupid emoticons or something. attempting to fix -
Bonjour a tous,
J’aimerais avoir des confirmations sur l'utilisation de VI, et plus particulièrement le VI Fetch et fetch all.
J'aurais besoin de pouvoir faire des filtres sur une table, les requêtes s'exécutent bien mais je n'arrive pas a faire l'affichage du résultat...
J’ai vu qu'il y avait l'utilisation du fetch.vi ou fetch_all.vi mais avec l'utilisation de celui-là il faut ajouter un VI de conversion (databse variant to data) mais celui-ci n'a pas l'air de vouloir fonctionner correctement, il me met entrée "le récepteur est de type vide"... je ne comprends pas pourquoi.
Avez-vous des exemples de VI dans lesquels un filtre est appliqué sur une base et on voit le résultat? Je suis un peut bloquer même si j'ai une solution alternative qui devrait marcher mais avec de la bidouille.
je joins mon VI pour ceux qui veulent regarder mais il faut le tool kit connectivity pour pouvoir l'ouvrir je pense.
Merci de votre aide.
Attachments:
test_ecr_bdd.vi 64 KBI'm not sure whether your problem is interacting with the database, or how to format a query to return just the data you need. This thread discusses how to interact with a database, presents some drivers for doing so and includes links that list some good books for learning SQL.
Mike...
Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion
"... after all, He's not a tame lion..."
Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps -
Query using database connectivity tool kit
I'm currently using an application that can read and write from an access database using labview. My problem is that I want to somehow have a query (hopefully just using the tool kit) that searches the database and displays the results in the read screen. I uploaded the program... can someone please take a look at it and try to help me out. I know the "look up screen" is a little messy, but i'd greatly appreciate any help you can give me.
Thanks
Attachments:
hail_mary3a.vi 198 KBI am unable to look at your program, since I am using an older version, but here is an example of what I do to display query results. I just do an SQL query and display it in a table. All data must be converted to strings first, though.
Attachments:
Access_Query_Example.vi 116 KB -
BizTalk ESB tool kit 2.2 Configuration Issue File/SSO
Hi,
I m trying to configure BizTalk ESB tool kit 2.2.
In the configuration we have File Counfiguration source or SSO Configuration source. As per the below blog
MSDN ESB Tool Kit Configuration
If you are installing and configuring the ESB Toolkit in a single server environment, you should
use File Configuration Source. The SSO Configuration Provider is most commonly used for multiple machine deployments.
1. We having the BizTalk VM and SQL Server as a Remote machine, in our case do we need to go with the File or SSO configuration.
2. What is the use of the Configuration (File and SSO COnfiguration)?
3. If i go with SSO configuration i am getting below error :
Error: Exception calling "PushAllConfiguration" with "6" argument(s): “Unrecognized element 'typeConfig'. (C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit\esb.config line 151)”
I find the error in the Microsoft blog but dont know how to change the TypeConfig:(
Please let me know which configuration i need to select and resolution for the above issue.
Regards, Aboorva Raja R Please remember to mark the replies as answers if they help and unmark them if they provide no help.Hi,
I configured SSO Configuration Source because for multi environment we need to use the same.
Follow the instruction in the below blog and Replace the Resolver as it is in the blog. Then it will configured successfully.
ESB ToolKit Configuration Issue Resolution
Regards, Aboorva Raja R Please remember to mark the replies as answers if they help and unmark them if they provide no help. -
Multi table inheritance and performance
I really like the idea of multi-table inheritance, since a have a main
class and three subclasses which just add one integer to the main class.
It would be a waste to spend 4 tables on this, so I decided to put them
all into one.
My problem now is, that when I query for a specific class, kodo will build
SQL like:
select ... from table where
JDOCLASSX='de.mycompany.myprojectname.mysubpack.classname'
this is pretty slow, when the table grows because string comparisons are
awefull - and even worse: the database has to compare nearly the whole
string because it differs only in the last letters.
indexing would help a bit but wouldn't outperforming integer comparisons.
Is it possible to get kodo to do one more step of normalization ?
Having an extra table containing all classnames und id's for them (and
references in the original table) would improve performance of
multi-tables quite a lot !
Even with standard classes it would save a lot memory not having the full
classname in each row.Stefan-
Thanks for the feedback. Note that 3.0 does make this simpler: we have
extensions that allow you to define the mechanism for subclass
identification purely in the metadata file(s). See:
http://solarmetric.com/Software/Documentation/3.0.0RC1/docs/manual.html#ref_guide_mapping_classind
The idea for having a separate table mapping numbers to class names is
good, but we prefer to have as few Kodo-managed tables as possible. It
is just as easy to do this in the metadata file.
In article <[email protected]>, Stefan wrote:
First of all: thx for the fast help, this one (IntegerProvider) helped and
solves my problem.
kodo is really amazing with all it's places where customization can be
done !
Anyway as a wish for future releases: exactly this technique - using
integer as class-identifiers rather than the full class names is what I
meant with "normalization".
The only thing missing, is a table containing information of how classIDs
are mapped to classnames (which is now contained as an explicit statement
in the jdo-File). This table is not mapped to the primary key of the main
table (as you suggested), but to the classID-Integer wich acts as a
foreign key.
A query for a specific class would be solved with a query like:
select * from classValues, classMapping where
classValues.JDOCLASSX=classmapping.IDX and
classmapping.CLASSNAMEX='de.company.whatever'
This table should be managed by kodo of course !
Imagine a table with 300.000 rows containing only 3 different derived
classes.
You would have an extra table with 4 rows (base class + 3 derived types).
Searching for the classID is done in that 4row table, while searching the
actual class instances than would be done over an indexed integer-classID
field.
This is much faster than having the database doing 300.000 String
comparisons (even when indexed).
(By the way - it would save a lot memory as well, even on classes which
are not derived)
If this technique is done by kodo transparently, maybe turned on with an
extra option ... that would be great, since you wouldn't need to take care
for different "subclass-indicator-values", can go on as everytime and have
a far better performance ...
Stephen Kim wrote:
You could push off fields to seperate tables (as long as the pk column
is the same), however, I doubt that would add much performance benefit
in this case, since we'd simply add a join (e.g. select data.name,
info.jdoclassx, info.jdoidx where data.jdoidx = info.jdoidx where
info.jdoclassx = 'foo'). One could turn off default fetch group for
fields stored in data, but now you're adding a second select to load one
"row" of data.
However, we DO provide an integer subclass provider which can speed
these sorts of queries a lot if you need to constrain your queries by
class, esp. with indexing, at the expense of simple legibility:
http://solarmetric.com/Software/Documentation/2.5.3/docs/ref_guide_meta_class.html#meta-class-subclass-provider
Stefan wrote:
I really like the idea of multi-table inheritance, since a have a main
class and three subclasses which just add one integer to the main class.
It would be a waste to spend 4 tables on this, so I decided to put them
all into one.
My problem now is, that when I query for a specific class, kodo will build
SQL like:
select ... from table where
JDOCLASSX='de.mycompany.myprojectname.mysubpack.classname'
this is pretty slow, when the table grows because string comparisons are
awefull - and even worse: the database has to compare nearly the whole
string because it differs only in the last letters.
indexing would help a bit but wouldn't outperforming integer comparisons.
Is it possible to get kodo to do one more step of normalization ?
Having an extra table containing all classnames und id's for them (and
references in the original table) would improve performance of
multi-tables quite a lot !
Even with standard classes it would save a lot memory not having the full
classname in each row.
Steve Kim
[email protected]
SolarMetric Inc.
http://www.solarmetric.com
Marc Prud'hommeaux [email protected]
SolarMetric Inc. http://www.solarmetric.com -
Multi-table INSERT with PARALLEL hint on 2 node RAC
Multi-table INSERT statement with parallelism set to 5, works fine and spawns multiple parallel
servers to execute. Its just that it sticks on to only one instance of a 2 node RAC. The code I
used is what is given below.
create table t1 ( x int );
create table t2 ( x int );
insert /*+ APPEND parallel(t1,5) parallel (t2,5) */
when (dummy='X') then into t1(x) values (y)
when (dummy='Y') then into t2(x) values (y)
select dummy, 1 y from dual;
I can see multiple sessions using the below query, but on only one instance only. This happens not
only for the above statement but also for a statement where real time table(as in table with more
than 20 million records) are used.
select p.server_name,ps.sid,ps.qcsid,ps.inst_id,ps.qcinst_id,degree,req_degree,
sql.sql_text
from Gv$px_process p, Gv$sql sql, Gv$session s , gv$px_session ps
WHERE p.sid = s.sid
and p.serial# = s.serial#
and p.sid = ps.sid
and p.serial# = ps.serial#
and s.sql_address = sql.address
and s.sql_hash_value = sql.hash_value
and qcsid=945
Won't parallel servers be spawned across instances for multi-table insert with parallelism on RAC?
Thanks,
MaheshPlease take a look at these 2 articles below
http://christianbilien.wordpress.com/2007/09/12/strategies-for-rac-inter-instance-parallelized-queries-part-12/
http://christianbilien.wordpress.com/2007/09/14/strategies-for-parallelized-queries-across-rac-instances-part-22/
thanks
http://swervedba.wordpress.com -
Problem with database tool kit, and MS Office Tool kit.
One of my programmer's who has the Office tool kit noticed this on Monday, and we haven't been able to find the problem yet.
We use the database connectivity reads and writes to a MS Access database. This program reads the data from a Symbol Scanner, and then inputs it into the database. He then has a query that to create a data table to pump into the MS Toolkit to build a MS World file (This is for a Bill of Lading).
What we found it that it works really well the first time, and on any further runs it will not update the database with any new data. It starts working again if we do a restart on the computer. It seems like something is not freeing up the database. He is freeing all the tables and closing the DB connection at each process, and everything else seems to be doing everything else right. I think the problem is that it goes into this MS Toolkit to make the table that goes on the Bill of Lading.
I did a modification that makes it read from an excel file on my desktop, and I found that it is doing the same thing. I deleted the report generator part of the program, and found that it will update the database properly. I have no clue.
here is the machine specs:
labview 8.6
Database connectivity toolkit 1.0.2
Report generator toolkit MS Office 1.1.3
MS Office 2007, the file is a Office 2003 format,Given that the code still fails when talking to a excel file it sounds like this isn't really related to the database. Can you post a bit of your that shows the problem. Beyond that, be looking for things in the code that change between subsequent interations -- things like shift registers, globals, etc.
On the other hand, the fact that you have to restart the computer would tend to indicate that there is something going on with the MS Office side of things. To be clear: shutting down and restarting LV is NOT sufficient to clear the problem?
When the problem is occurring, if you shut down LV and open the Task Manager do you see (on the Processes tab) any MS Office components still running?
Mike...
Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion
"... after all, He's not a tame lion..."
Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps -
View links in multi table relations
Is it advisable (in terms of performance e. g.), to create view links and view objects as local variables in multi table relations?
examle: the jdev online help says to use
such multi table relations like this:
// A (one) -> B (many) -> C (many)
ViewLink a2b = appMod.findViewLink("AtoB");
ViewLink b2c = appMod.findViewLink("BtoC");
ViewObject aV = a2b.getSource();
ViewObject bV = a2b.getDestination();
ViewObject cV = b2c.getDestination();
while(aV.hasNext())
Row aR = aV.next();
while(bV.hasNext())
Row bR = cV.next();
while(cV.hasNext())
Row cR = cV.next();
I would rather keep everything concerning
a, b, c together, especially when more
tables (d, e, ...) are added, like this
ViewLink a2b = appMod.findViewLink("AtoB");
ViewObject aV = a2b.getSource();
while(aV.hasNext())
Row aR = aV.next();
ViewLink b2c = appMod.findViewLink("BtoC");
ViewObject bV = a2b.getDestination();
while(bV.hasNext())
Row bR = cV.next();
ViewObject cV = b2c.getDestination();
while(cV.hasNext())
Row cR = cV.next();
Is there anything to say against this approach (in term of performance for example). I am not sure to remeber,
if this was the approach used in the HotelResevationSystem example.
Thanks.
Rx
nullFor this to work you have to either build a view based on the entities from which you need attributes (joined by the FK) or build a ViewObject with the sql statement giving you all the attributes you need.
The first case enables you the edit the attributes, the second gives you read only access to the attributes.
What you try to do isn't a master-detail connection, you are doing a join of some tables.
Timo -
Any general tips on getting better performance out of multi table insert?
I have been struggling with coding a multi table insert which is the first time I ever use one and my Oracle skills are pretty poor in general so now that the query is built and works fine I am sad to see its quite slow.
I have checked numerous articles on optimizing but the things I try dont seem to get me much better performance.
First let me describe my scenario to see if you agree that my performance is slow...
its an insert all command, which ends up inserting into 5 separate tables, conditionally (at least 4 inserts, sometimes 5 but the fifth is the smallest table). Some stats on these tables as follows:
Source table: 5.3M rows, ~150 columns wide. Parallel degree 4. everything else default.
Target table 1: 0 rows, 27 columns wide. Parallel 4. everything else default.
Target table 2: 0 rows, 63 columns wide. Parallel 4. default.
Target table 3: 0 rows, 33 columns wide. Parallel 4. default.
Target table 4: 0 rows, 9 columns wide. Parallel 4. default.
Target table 5: 0 rows, 13 columns wide. Parallel 4. default.
The parallelism is just about the only customization I myself have done. Why 4? I dont know it's pretty arbitrary to be honest.
Indexes?
Table 1 has 3 index + PK.
Table 2 has 0 index + FK + PK.
Table 3 has 4 index + FK + PK
Table 4 has 3 index + FK + PK
Table 5 has 4 index + FK + PK
None of the indexes are anything crazy, maybe 3 or 4 of all of them are on multiple columns, 2-3 max. The rest are on single columns.
The query itself looks something like this:
insert /*+ append */ all
when 1=1 then
into table1 (...) values (...)
into table2 (...) values (...)
when a=b then
into table3 (...) values (...)
when a=c then
into table3 (...) values (...)
when p=q then
into table4(...) values (...)
when x=y then
into table5(...) values (...)
select .... from source_table
Hints I tried are with append, without append, and parallel (though adding parallel seemed to make the query behave in serial, according to my session browser).
Now for the performance:
It does about 8,000 rows per minute on table1. So that means it should also have that much in table2, table3 and table4, and then a subset of that in table5.
Does that seem normal or am I expecting too much?
I find articles talking about millions of rows per minute... Obviously i dont think I can achieve that much... but maybe 30k or so on each table is a reasonable goal?
If it seems my performance is slow, what else do you think I should try? Is there any information I may try to get to see if maybe its a poorly configured database for this?
P.S. Is it possible I can run this so that it commits every x rows or something? I had the heartbreaking event of a network issue giving me this sudden "ora-25402: transaction must roll back" after it was running for 3.5 hours. So I lost all the progress it made... have to start over. plus i wonder if the sheer amount of data being queued for commit/rollback is causing some of the problem?
Edited by: trant on Jun 27, 2011 9:29 PMLooks like there are about 54 sessions on my database, 7 of the sessions belong to me (2 taken by TOAD and 4 by my parallel slave sessions and 1 by the master of those 4)
In v$session_event there are 546 rows, if i filter it to the SIDs of my current session and order my micro_wait_time desc:
510 events in waitclass Other 30670 9161 329759 10.75 196 3297590639 1736664284 1893977003 0 Other
512 events in waitclass Other 32428 10920 329728 10.17 196 3297276553 1736664284 1893977003 0 Other
243 events in waitclass Other 21513 5 329594 15.32 196 3295935977 1736664284 1893977003 0 Other
223 events in waitclass Other 21570 52 329590 15.28 196 3295898897 1736664284 1893977003 0 Other
241 row cache lock 1273669 0 42137 0.03 267 421374408 1714089451 3875070507 4 Concurrency
241 events in waitclass Other 614793 0 34266 0.06 12 342660764 1736664284 1893977003 0 Other
241 db file sequential read 13323 0 3948 0.3 13 39475015 2652584166 1740759767 8 User I/O
241 SQL*Net message from client 7 0 1608 229.65 1566 16075283 1421975091 2723168908 6 Idle
241 log file switch completion 83 0 459 5.54 73 4594763 3834950329 3290255840 2 Configuration
241 gc current grant 2-way 5023 0 159 0.03 0 1591377 2685450749 3871361733 11 Cluster
241 os thread startup 4 0 55 13.82 26 552895 86156091 3875070507 4 Concurrency
241 enq: HW - contention 574 0 38 0.07 0 378395 1645217925 3290255840 2 Configuration
512 PX Deq: Execution Msg 3 0 28 9.45 28 283374 98582416 2723168908 6 Idle
243 PX Deq: Execution Msg 3 0 27 9.1 27 272983 98582416 2723168908 6 Idle
223 PX Deq: Execution Msg 3 0 25 8.26 24 247673 98582416 2723168908 6 Idle
510 PX Deq: Execution Msg 3 0 24 7.86 23 235777 98582416 2723168908 6 Idle
243 PX Deq Credit: need buffer 1 0 17 17.2 17 171964 2267953574 2723168908 6 Idle
223 PX Deq Credit: need buffer 1 0 16 15.92 16 159230 2267953574 2723168908 6 Idle
512 PX Deq Credit: need buffer 1 0 16 15.84 16 158420 2267953574 2723168908 6 Idle
510 direct path read 360 0 15 0.04 4 153411 3926164927 1740759767 8 User I/O
243 direct path read 352 0 13 0.04 6 134188 3926164927 1740759767 8 User I/O
223 direct path read 359 0 13 0.04 5 129859 3926164927 1740759767 8 User I/O
241 PX Deq: Execute Reply 6 0 13 2.12 10 127246 2599037852 2723168908 6 Idle
510 PX Deq Credit: need buffer 1 0 12 12.28 12 122777 2267953574 2723168908 6 Idle
512 direct path read 351 0 12 0.03 5 121579 3926164927 1740759767 8 User I/O
241 PX Deq: Parse Reply 7 0 9 1.28 6 89348 4255662421 2723168908 6 Idle
241 SQL*Net break/reset to client 2 0 6 2.91 6 58253 1963888671 4217450380 1 Application
241 log file sync 1 0 5 5.14 5 51417 1328744198 3386400367 5 Commit
510 cursor: pin S wait on X 3 2 2 0.83 1 24922 1729366244 3875070507 4 Concurrency
512 cursor: pin S wait on X 2 2 2 1.07 1 21407 1729366244 3875070507 4 Concurrency
243 cursor: pin S wait on X 2 2 2 1.06 1 21251 1729366244 3875070507 4 Concurrency
241 library cache lock 29 0 1 0.05 0 13228 916468430 3875070507 4 Concurrency
241 PX Deq: Join ACK 4 0 0 0.07 0 2789 4205438796 2723168908 6 Idle
241 SQL*Net more data from client 6 0 0 0.04 0 2474 3530226808 2000153315 7 Network
241 gc current block 2-way 5 0 0 0.04 0 2090 111015833 3871361733 11 Cluster
241 enq: KO - fast object checkpoint 4 0 0 0.04 0 1735 4205197519 4217450380 1 Application
241 gc current grant busy 4 0 0 0.03 0 1337 2277737081 3871361733 11 Cluster
241 gc cr block 2-way 1 0 0 0.06 0 586 737661873 3871361733 11 Cluster
223 db file sequential read 1 0 0 0.05 0 461 2652584166 1740759767 8 User I/O
223 gc current block 2-way 1 0 0 0.05 0 452 111015833 3871361733 11 Cluster
241 latch: row cache objects 2 0 0 0.02 0 434 1117386924 3875070507 4 Concurrency
241 enq: TM - contention 1 0 0 0.04 0 379 668627480 4217450380 1 Application
512 PX Deq: Msg Fragment 4 0 0 0.01 0 269 77145095 2723168908 6 Idle
241 latch: library cache 3 0 0 0.01 0 243 589947255 3875070507 4 Concurrency
510 PX Deq: Msg Fragment 3 0 0 0.01 0 215 77145095 2723168908 6 Idle
223 PX Deq: Msg Fragment 4 0 0 0 0 145 77145095 2723168908 6 Idle
241 buffer busy waits 1 0 0 0.01 0 142 2161531084 3875070507 4 Concurrency
243 PX Deq: Msg Fragment 2 0 0 0 0 84 77145095 2723168908 6 Idle
241 latch: cache buffers chains 4 0 0 0 0 73 2779959231 3875070507 4 Concurrency
241 SQL*Net message to client 7 0 0 0 0 51 2067390145 2000153315 7 Network
(yikes, is there a way to wrap that in equivalent of other forums' tag?)
v$session_wait;
223 835 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 10 WAITING
241 22819 row cache lock cache id 13 000000000000000D mode 0 00 request 5 0000000000000005 3875070507 4 Concurrency -1 0 WAITED SHORT TIME
243 747 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 7 WAITING
510 10729 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 2 WAITING
512 12718 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 4 WAITING
v$sess_io:
223 0 5779 5741 0 0
241 38773810 2544298 15107 27274891 0
243 0 5702 5688 0 0
510 0 5729 5724 0 0
512 0 5682 5678 0 0 -
SQL, PL/SQL functions, and ORA-04091 table is mutating
Dears,
Recently a question came up in an Oracle French forum about an insert/select that is throwing ORA-04091: table xxxx is mutating, trigger/function may not see it error in 11g while the same insert/select was working very well in 10g. The original poster gave a scenario that is easily reproducible. I am wondering what database release is correct the one throwing the error(11g) or the other one accepting the insert/select(10g)?
*10g*
mhouri.world > select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
mhouri.world > create table t_read_consistency (id number, vc varchar2(15), primary key (id));
Table created.
mhouri.world > insert into
2 t_read_consistency
3 select
4 rownum id,
5 rpad('a',15,'a')
6 from
7 dual
8 connect by
9 level<=1000;
1000 rows created.
mhouri.world > commit;
Commit complete.
mhouri.world > create or replace function f_read_consistency return varchar2
2 as
3 lv_vc t_read_consistency.vc%type;
4 begin
5 select trc.vc
6 into lv_vc
7 from t_read_consistency trc
8 where trc.id = 70 ;
9 return lv_vc;
10 end f_read_consistency;
11 /
Function created.
mhouri.world >insert into
2 t_read_consistency (id, vc)
3 select
4 1001
5 ,f_read_consistency
6 from dual;
,f_read_consistency
ERROR at line 5:
ORA-04091: table MHOURI.T_READ_CONSISTENCY is mutating, trigger/function may not see it
ORA-06512: at "MHOURI.F_READ_CONSISTENCY", line 5
_11g_
mohamed@mhouri> select * from v$version;
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
mohamed@mhouri> create table t_read_consistency (id number, vc varchar2(15), primary key (id));
Table created.
mohamed@mhouri> insert into
2 t_read_consistency
3 select
4 rownum id,
5 rpad('a',15,'a')
6 from
7 dual
8 connect by
9 level<=1000;
1000 rows created.
mohamed@mhouri> create or replace function f_read_consistency return varchar2
2 as
3 lv_vc t_read_consistency.vc%type;
4 begin
5 select trc.vc
6 into lv_vc
7 from t_read_consistency trc
8 where trc.id = 70 ;
9 return lv_vc;
10 end f_read_consistency;
11 /
Function created.
mohamed@mhouri> insert into
2 t_read_consistency (id, vc)
3 select
4 1001
5 ,f_read_consistency
6 from dual;
,f_read_consistency
ERROR at line 5:
ORA-04091: table MOHAMED.T_READ_CONSISTENCY is mutating, trigger/function may
not see it
ORA-06512: at "MOHAMED.F_READ_CONSISTENCY", line 5 So far so good. Same behaviour for both releases. But let's bring a small change to the PL/SQL function to be as close as the example given in the French Forum
_10g where the select/insert was working without error_:
mhouri.world > select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
mhouri.world > create type t_read_cs as object (id number,vc varchar2(15));
2 /
Type created.
mhouri.world > create type t_read_cs_tab as table of t_read_cs;
2 /
Type created.
mhouri.world > create or replace function f_read_consistency_tab
2 return t_read_cs_tab
3 as
4 lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
5 j binary_integer := 0;
6 begin
7 for x in (select
8 id,
9 vc
10 from t_read_consistency trs
11 where trs.id <= 10
12 ) loop
13
14 j := j +1;
15 lc_t_read_cs_tab.extend;
16 lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
17 end loop;
18 RETURN lc_t_read_cs_tab;
19 end f_read_consistency_tab;
20 /
Function created.
mhouri.world > select count(1) from t_read_consistency;
COUNT(1)
1000
mhouri.world > select count(1)
2 from (select * from table(f_read_consistency_tab));
COUNT(1)
10
mhouri.world > insert into t_read_consistency
2 (id,vc)
3 select id,vc
4 from table(f_read_consistency_tab)
5 ;
10 rows created.
mhouri.world > select count(1) from t_read_consistency;
COUNT(1)
1010
_11g where the same insert/select is throwing an error:_
mohamed@mhouri> select * from v$version;
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
mohamed@mhouri> create type t_read_cs as object (id number,vc varchar2(15));
2 /
Type created.
mohamed@mhouri> create type t_read_cs_tab as table of t_read_cs;
2 /
Type created.
mohamed@mhouri> create or replace function f_read_consistency_tab
2 return t_read_cs_tab
3 as
4 lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
5 j binary_integer := 0;
6 begin
7 for x in (select
8 id,
9 vc
10 from t_read_consistency trs
11 where trs.id <= 10
12 ) loop
13
14 j := j +1;
15 lc_t_read_cs_tab.extend;
16 lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
17 end loop;
18 RETURN lc_t_read_cs_tab;
19 end f_read_consistency_tab;
20 /
Function created.
mohamed@mhouri> select count(1) from t_read_consistency;
COUNT(1)
1000
mohamed@mhouri> select count(1) from (select * from table(f_read_consistency_tab));
COUNT(1)
10
mohamed@mhouri> insert into t_read_consistency
2 (id,vc)
3 select id,vc
4 from table(f_read_consistency_tab)
5 ;
from table(f_read_consistency_tab)
ERROR at line 4:
ORA-04091: table MOHAMED.T_READ_CONSISTENCY is mutating, trigger/function may
not see it
ORA-06512: at "MOHAMED.F_READ_CONSISTENCY_TAB", line 7 In addition, one of the posters spotted out very judiciously that if we slightly change the definition of the table t_read_consistency in 11g, strangely the insert/select will work correctly in this data base as shown below:
ohamed@mhouri> drop table tr_read_consistency;
Table dropped.
mohamed@mhouri> create table tr_read_consistency
2 as select rownum rn,
3 trs.*
4 from
5 t_read_consistency trs;
Table created.
mohamed@mhouri> insert into tr_read_consistency
2 (rn, id,vc)
3 select rownum, id,vc
4 from table(f_read_consistency_tab);
10 rows created.So is this a regression? or a corrected bug during upgrade?
Thanks in advance
Mohamed HouriI just followed the doc links provided by Tubby, which have 100% Correct answer. See below :
SQL> select * from v$version;
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> show user;
USER is "SCOTT"
SQL> create type t_read_cs as object (id number,vc varchar2(15));
2 /
Type created.
SQL> create type t_read_cs_tab as table of t_read_cs;
2 /
Type created.
SQL> create table t_read_consistency (id number, vc varchar2(15), primary key (id));
Table created.
SQL> create or replace function f_read_consistency_tab
2 return t_read_cs_tab
3 as
4 lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
5 j binary_integer := 0;
6 begin
7 for x in (select
8 id,
9 vc
10 from t_read_consistency trs
11 where trs.id <= 10
12 ) loop
13 j := j +1;
14 lc_t_read_cs_tab.extend;
15 lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
16 end loop;
17 RETURN lc_t_read_cs_tab;
18 end f_read_consistency_tab;
19 /
Function created.
SQL> insert into
2 t_read_consistency
3 select
4 rownum id,
5 rpad('a',15,'a')
6 from
7 dual
8 connect by
9 level<=1000;
1000 rows created.
SQL> select count(1) from t_read_consistency;
COUNT(1)
1000
SQL> select count(1) from (select * from table(f_read_consistency_tab));
COUNT(1)
10
SQL> insert into t_read_consistency
2 (id,vc)
3 select id,vc
4 from table(f_read_consistency_tab);
from table(f_read_consistency_tab)
ERROR at line 4:
ORA-04091: table SCOTT.T_READ_CONSISTENCY is mutating, trigger/function may not see it
ORA-06512: at "SCOTT.F_READ_CONSISTENCY_TAB", line 7
SQL> ed
Wrote file afiedt.buf
1 create or replace function f_read_consistency_tab
2 return t_read_cs_tab
3 as
4 lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
5 j binary_integer := 0;
6 PRAGMA AUTONOMOUS_TRANSACTION; <--- This works as documented in 11.2.0.1
7 begin
8 for x in (select
9 id,
10 vc
11 from t_read_consistency trs
12 where trs.id <= 10
13 ) loop
14 j := j +1;
15 lc_t_read_cs_tab.extend;
16 lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
17 end loop;
18 RETURN lc_t_read_cs_tab;
19* end f_read_consistency_tab;
SQL> /
Function created.
SQL> insert into t_read_consistency
2 (id,vc)
3 select id,vc
4 from table(f_read_consistency_tab);
insert into t_read_consistency
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.SYS_C0011307) violated
SQL> drop table t_read_consistency purge;
Table dropped.
SQL> create table t_read_consistency (id number, vc varchar2(15));
Table created.
SQL> insert into
2 t_read_consistency
3 select
4 rownum id,
5 rpad('a',15,'a')
6 from
7 dual
8 connect by
9 level<=1000;
1000 rows created.
SQL> commit;
Commit complete.
SQL> insert into t_read_consistency
2 (id,vc)
3 select id,vc
4 from table(f_read_consistency_tab);
10 rows created.
SQL> commit;
Commit complete.
SQL>So, you have to add only PRAGMA AUTONOMOUS_TRANSACTION; before begin in your function code to avoid ORA-04091 in 11.2.0.1
But, All thanks to Tubby who pointed us to the correct documentation link.
Regards
Girish Sharma -
MS05 transaction throws "SQL error: error during INSERT (table: &)"
Hi Team,
I am a BASIS engineer on MM system. we have a strange problem from customers we see an error on the MS05 screen with "SQL error: error during INSERT (table: &)" and when the support team runs MS01 transaciton this error gets resolved.
What I would like to know is what could be the likely cause of this error and how we can prevent it.
When I check the SM21 logs i noticed one log with "Transaction cancellation 61 204 ( PLAF )"
and under additional document section is the log I see the below information
Usually, the reason for this error is that an entry already exists
with the same key.
This problem can occur if the client was copied with the movement data
without adjusting the number range intervals.
Please check if the number ranges for this table have been set
correctly and, if necessary, correct the number range interval.
I am from BASIS and I have no clue in how the MM transactions are linked can any MM gurus help in identifying the root cause for this problem.
any help on this is highly appreciated
thanks
VijayHi
Are MS05 & MS01 you're referring is a T-code?. if so, then they are associated with planning and a PP consultant can give a more clear picture on it. Try posting this to a PP forum.
Based on the error log, i guess this may arise because of the number range problem, when the document is getting saved and record is being tried to inserted into a table.
Thanks
E.Avudaiappan
Maybe you are looking for
-
This has just started happening since last update of Firefox. I will be on a website, and I click on a link. Clicking on link brings up another Mozilla Firefox window with a blank window and at top of window, it asks for "type web address" in navigat
-
Using an interface as a parm in a methods
Greetings I have an interface class that has a bunch of get methods. Then in another class I call the interface as a parameters. But what information do I put in it as I use it? the gets? [code //interface class public interface FillData {
-
Call EJB in WLS 7.0SP2 from WLS 5.1 SP13
Hello, I am trying to call an EJB deployed on WLS 7.0SP2 from a WLS 5.1 SP13. There are issues from 19 Dec 2002 in "weblogic.developer.interest.rmi-iiop" newsgroup that are supossed to established a summary on this interoperability. The solution seem
-
Corrupt recorded pdf with Safari 6.02 ?
I recently updated Safari to 6.02 on my MacBook 4.1 with Lion 7.5. With my previous Safari version, I could record pdf files without problem. Now, I can still record pdf but I cannot read them back, the system tells me "corrupt file". This problem is
-
I have an online flash module I need to burn on a CD. I'd like this CD to be able to autostart. Right now it opens in a browser and I would like the index.html file to autostart. Does anyone know the best way to do this on PC and MAC? Thank you.