<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1047006429728597539</id><updated>2012-02-16T00:37:04.207-08:00</updated><category term='EIM'/><category term='debug'/><category term='siebel'/><category term='Ecology'/><category term='Microsoft'/><category term='support'/><category term='tools'/><category term='Remote Server'/><category term='PL/SQL'/><category term='Harvest'/><category term='eScript'/><category term='applets'/><category term='Files'/><category term='interfaces'/><category term='mapping'/><category term='Fun'/><category term='Oracle'/><category term='diccache'/><category term='v7.5.2'/><category term='SQLNavigator'/><category term='Copy'/><category term='Picklist'/><category term='SqlPlus'/><category term='EAI'/><category term='tablespace'/><category term='firewall'/><category term='BS Simulator'/><category term='Tunning'/><category term='ANSI SQL'/><title type='text'>Siebel and Oracle Stuff</title><subtitle type='html'>and other small things</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8336034966624589428</id><published>2010-07-02T03:58:00.000-07:00</published><updated>2010-07-02T04:13:30.246-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Picklist'/><title type='text'>How to dynamically enable and disable pickmap constrain</title><content type='html'>Imagine this scenario : You have a picklist that, under certain conditions, must have a constrain in the pickmap list, so what should I do to disable it when is not necessary?&lt;br /&gt;Easy, read tools online help.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Pick Map UpdOnlyIfNull&lt;br /&gt;&lt;br /&gt;Marks a copy pick map (read Pick Map) to perform only the copy operation if the field specified in the pick map updonlyifnull is null. Constrain pick maps are also copy pick maps. In cases where the constraint is active, this results in no operation (no-op). In cases where the UpdOnlyIfNull causes the constraint to be ignored, the copy operation works. To avoid the copy operation use a calculated field as the field for the constrain pick map.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8336034966624589428?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8336034966624589428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8336034966624589428' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8336034966624589428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8336034966624589428'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2010/07/how-to-dynamically-enable-and-disable.html' title='How to dynamically enable and disable pickmap constrain'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-5023108604020648441</id><published>2008-06-25T05:57:00.000-07:00</published><updated>2008-06-25T06:08:35.464-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><title type='text'>EIM : Handling EIM process failures</title><content type='html'>Imagine this scenario, you are deleting a large number of contacts and you process aborts somewhere during the process. If you are using default parameters in process IFB, you can be in a lot of trouble. Why? EIM have this 3 parameters &lt;br /&gt;&lt;pre&gt;COMMIT EACH PASS = TRUE&lt;br /&gt;COMMIT EACH TABLE = TRUE&lt;br /&gt;ROLLBACK ON ERROR = FALSE&lt;/pre&gt;whith this defaults, this means that after deleting a table a commit is performed. And no rollback is performed. this can leave you with "orphan" records.&lt;br /&gt;To avoid this, just change your parameters to &lt;br /&gt;&lt;pre&gt;COMMIT EACH PASS = FALSE&lt;br /&gt;COMMIT EACH TABLE = FALSE&lt;br /&gt;ROLLBACK ON ERROR = TRUE&lt;/pre&gt;This ensures that EIM will either complete sucessfully or rollback the batch.&lt;br /&gt;&lt;br /&gt;Just one note, be sure that your database resources are large enough to handle this transaction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-5023108604020648441?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/5023108604020648441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=5023108604020648441' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5023108604020648441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5023108604020648441'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/06/eim-handling-eim-process-failures.html' title='EIM : Handling EIM process failures'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2515946902455289610</id><published>2008-06-06T02:02:00.000-07:00</published><updated>2008-06-06T02:15:30.457-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Copy'/><title type='text'>PL\SQL : Copy tables between databases</title><content type='html'>As you noticed, my posts run around my daily problems, and this isn't an exception. Past week I needed to copy large amount of data between production and development database to perform some tests. After some research I've found SQL*Plus COPY command, that fits like a glove in my needs.&lt;br /&gt;So here's the syntax:&lt;pre&gt;&lt;br /&gt;COPY FROM database TO database action&lt;br /&gt;destination_table (column_name, column_name...) USING query&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;where action stands for:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;create - if destination table doesn't exist yet;&lt;/li&gt;&lt;li&gt;replace - if destination table exists and we wish to drop and create it again;&lt;/li&gt;&lt;li&gt;append - Inserts data if table exist, otherwise it will be created;&lt;/li&gt;&lt;li&gt;insert - Insert data into an existing table.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;An example could be :&lt;/p&gt;&lt;pre&gt;SQL&gt;copy from user/pass@DB1 &lt;br /&gt;   to user2/pass2@DB2&lt;br /&gt;   append new_emp&lt;br /&gt;   using select * from emp;&lt;br /&gt;&lt;/pre&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2515946902455289610?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2515946902455289610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2515946902455289610' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2515946902455289610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2515946902455289610'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/06/plsql-copy-tables-between-databases.html' title='PL\SQL : Copy tables between databases'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2037663843995676037</id><published>2008-04-21T07:16:00.001-07:00</published><updated>2008-04-22T02:43:42.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='EAI'/><title type='text'>SBL-EAI-04375 - EAI upsert error</title><content type='html'>Past week I came across an annoying error, lets supose that I have an integration object that generates a schema like this:&lt;br /&gt;&lt;pre&gt;   &amp;lt;name&amp;gt;Account Name&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;competitorlist&amp;gt;&lt;br /&gt;      &amp;lt;competitor&amp;gt;&lt;br /&gt;         &amp;lt;name&amp;gt;Name 1&amp;lt;/name&amp;gt;&lt;br /&gt;         &amp;lt;type&amp;gt;TYPE&amp;lt;/type&amp;gt;&lt;br /&gt;      &amp;lt;/competitor&amp;gt;&lt;br /&gt;   &amp;lt;/competitorlist&amp;gt;&lt;br /&gt;&lt;/pre&gt;When I used EAI to upsert this values, it works fine in first execution, but fails in next executions (with same data)&lt;br /&gt;with this error :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;"Method 'WriteRecord' of business component 'BC' (integration component 'BC') for record with search specification '[Name]="TYPE" AND [Type]="Name 1"' returned the following error:"The same values for 'Name, Type' already exist.&lt;br /&gt;If you would like to enter a new record, please ensure that the field values are unique.(SBL-DAT-00382)"(SBL-EAI-04375)&lt;br /&gt;--&lt;br /&gt;Error invoking service 'EAI Siebel Adapter',&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So, let me explain all scenario for a better explanation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Table that supports competitor list have a key for name and type for each account&lt;/li&gt;&lt;li&gt;BC that supports this IO have a MVG declaration with Type Field = Type and Type Value = TYPE&lt;/li&gt;&lt;li&gt;By mistake values in CompetitorList came switched...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;   &amp;lt;name&amp;gt;Account Name&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;competitorlist&amp;gt;&lt;br /&gt;      &amp;lt;competitor&amp;gt;&lt;br /&gt;         &amp;lt;name&amp;gt;TYPE&amp;lt;/name&amp;gt;&lt;br /&gt;         &amp;lt;type&amp;gt;Name 1&amp;lt;/type&amp;gt;&lt;br /&gt;      &amp;lt;/competitor&amp;gt;&lt;br /&gt;   &amp;lt;/competitorlist&amp;gt;&lt;br /&gt;&lt;/pre&gt;So what's really happening? Why first execution works fine (even with switched values)? After strugling with it for a day&lt;br /&gt;I found the answer in siebel sql trace, When EAI process is trying to decide if is an update or an insert in Competitors table, is used MVG restriction to perform the&lt;br /&gt;query, so, because values are switched EAI is looking for a register with type = TYPE, which wasn't found because we are inserting a record with type= Name 1, then when EAI&lt;br /&gt;didn't found any record it will try to insert a new one with values that already exists in db causing this error to happen.&lt;br /&gt;&lt;br /&gt;This is a pretty strange situation, that causes a pretty confuse explanation.&lt;br /&gt;So, bottom line is : If any similiar situation happens to you, look in siebel logs for the query that is causing it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2037663843995676037?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2037663843995676037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2037663843995676037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2037663843995676037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2037663843995676037'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/04/sbl-eai-04375-eai-upsert-error.html' title='SBL-EAI-04375 - EAI upsert error'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-6655574291093356398</id><published>2008-04-16T01:51:00.000-07:00</published><updated>2008-04-16T02:04:55.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='BS Simulator'/><title type='text'>Using BS simulator</title><content type='html'>Today, I've lost 4 hours trying to understand an unexpectable error when testing a BS Method using BS simulator, so here's the story.&lt;br /&gt;All my executin ends in:&lt;br /&gt;&lt;pre&gt;An error has ocurred in business component "Service Request" creation used by business object "Business Service"....&lt;br /&gt;&lt;/pre&gt;After struigling with it, and try to discover where I've used that BS, because I don't remember to use it, I've discover (with a little help from Gonçalo) this piece of code :&lt;br /&gt;&lt;pre&gt;   activeBO = TheApplication().ActiveBusObject();&lt;br /&gt;   bcSR = activeBO.GetBusComp("Service Request");&lt;br /&gt;&lt;/pre&gt;So I've solved the mistery, "Business service" is the ActiveBusObject when you instantiate a method from BS simulator, and that's causing the unexpected error.&lt;br /&gt;&lt;br /&gt;Thanks Gonçalo, without your help I surely can't solve this out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-6655574291093356398?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/6655574291093356398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=6655574291093356398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6655574291093356398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6655574291093356398'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/04/using-bs-simulator.html' title='Using BS simulator'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-4348338451127325383</id><published>2008-03-03T05:56:00.000-08:00</published><updated>2008-03-03T06:11:36.511-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>ORA-01445: cannot select ROWID from a join view wihtout a key-preserved table.</title><content type='html'>Today, I was building an huge query, after adding another branche, the query returned me this strange error :&lt;br /&gt;&lt;pre&gt;ORA-01445: cannot select ROWID from a join view wihtout a key-preserved table.&lt;br /&gt;&lt;/pre&gt;My query was something like this :&lt;br /&gt;&lt;pre&gt;select * from tableA a join tableB b on (a.column = b.column)&lt;br /&gt;&lt;/pre&gt;No row_ids...&lt;br /&gt;&lt;br /&gt;After struggling with it for a while, I search metalink, and after all it was Oracle thats causing my problems.... Oracle(9) has a limit of 1050 columns in any query that uses ANSI joins. So I've changed my query to :&lt;br /&gt;&lt;pre&gt;select * from tableA a join (select column from tableB) b on (a.column = b.column)&lt;br /&gt;&lt;/pre&gt;This way I've reduced my query colums and my problem was solved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-4348338451127325383?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/4348338451127325383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=4348338451127325383' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4348338451127325383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4348338451127325383'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/03/ora-01445-cannot-select-rowid-from-join.html' title='ORA-01445: cannot select ROWID from a join view wihtout a key-preserved table.'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2741890498790919336</id><published>2008-02-15T03:01:00.000-08:00</published><updated>2008-02-15T03:04:51.636-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='applets'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Applet : Fast button enable</title><content type='html'>Today, I came across this great tip from &lt;a href="http://siebelunleashed.com/eventmethod-%e2%80%93-a-new-way-to-enable-the-button/"&gt;Siebel Unleashed&lt;/a&gt;, in how to enable an applet button;&lt;br /&gt;&lt;blockquote&gt;If you create a button and give method name as CopyScript then change it to EventMethodCopyScript it will automatically enable the button. But you need to change the method name at BC level too. So at BC Level the scripting will change to&lt;br /&gt;&lt;br /&gt;if(MethodName == “EventMethodCopyScript”)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2741890498790919336?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2741890498790919336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2741890498790919336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2741890498790919336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2741890498790919336'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/02/applet-fast-button-enable.html' title='Applet : Fast button enable'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-6831093747379878992</id><published>2008-02-13T05:50:00.000-08:00</published><updated>2008-02-13T06:01:04.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLNavigator'/><title type='text'>SQLNavigator : Toolbars have disappeared</title><content type='html'>&lt;p&gt;Today, I had to query my Database, start SQL Navigator instance and .... Surprise!!&lt;br /&gt;All my toolbars have disappeared. Happily, I've only to delete one registry folder to solve my problem.&lt;br /&gt;If this happen, all you have to do is :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Close all your sql navigator running instances;&lt;/li&gt;&lt;li&gt;Open registry;  (Click run and type regedit)&lt;/li&gt;&lt;li&gt;Go to : HKEY_CURRENT_USER\Software\Quest Software\SQL Navigator&lt;/li&gt;&lt;li&gt;Delete Main_Form folder&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And you are ready to go.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-6831093747379878992?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/6831093747379878992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=6831093747379878992' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6831093747379878992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6831093747379878992'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/02/sqlnavigator-toolbars-have-disappeared.html' title='SQLNavigator : Toolbars have disappeared'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-993828168994688357</id><published>2008-02-07T00:54:00.000-08:00</published><updated>2008-02-07T00:57:05.704-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>Oracle Sample Code Incubator</title><content type='html'>New Oracle wiki, you can try it &lt;a href="http://wiki.oracle.com/page/Sample+Code+Incubator"&gt;here&lt;/a&gt;. Let's share our common, or not so common, daily routines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-993828168994688357?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/993828168994688357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=993828168994688357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/993828168994688357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/993828168994688357'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/02/oracle-sample-code-incubator.html' title='Oracle Sample Code Incubator'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-6532219845868715822</id><published>2008-01-23T04:00:00.000-08:00</published><updated>2008-01-23T05:44:29.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>BC : Force Active Property</title><content type='html'>This business component property is more powerfull than most people imagine. Why?&lt;br /&gt;It's simple. If used unnecessary it can decrease application performance.&lt;br /&gt;When you set this property to TRUE, it means that this fiels is queried every time business component is instantiated :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Every time you do a BO.GetBusComp(”Name”) in a script. &lt;/li&gt;&lt;li&gt;Every time you navigate in application and the underlying BC is "Name".&lt;/li&gt;&lt;li&gt;BC is accessed internally in any form.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Why?&lt;/p&gt;&lt;blockquote&gt;Every time you make a field Force active it will be made part of where clause each time a query is issued against that BC or table irrespective of the fact that field is required or not.&lt;/blockquote&gt;&lt;p&gt;You can read detailed information &lt;a href="http://siebelunleashed.com/force-active-use-with-care/#more-128"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-6532219845868715822?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/6532219845868715822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=6532219845868715822' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6532219845868715822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6532219845868715822'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/01/bc-force-active.html' title='BC : Force Active Property'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8294880938157368230</id><published>2008-01-17T00:54:00.000-08:00</published><updated>2008-01-17T01:28:04.769-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>EIM : Session SQL</title><content type='html'>When using EIM to delete,update or insert data, you can perform some post execution operations. Just use SESSION SQL keyword in your IFB, this allow you to execute a query after EIM section ends is execution.&lt;br /&gt;You can read more about it &lt;a href="http://download.oracle.com/docs/cd/E05554_01/books/EIMAdm/EIMConfig8.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8294880938157368230?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8294880938157368230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8294880938157368230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8294880938157368230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8294880938157368230'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/01/eim-session-sql.html' title='EIM : Session SQL'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1321236926106913113</id><published>2008-01-14T00:49:00.000-08:00</published><updated>2008-01-14T01:07:52.748-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>EIM : How to populate S_EVT_ACT contact columns.</title><content type='html'>This was my last task, populate primary contact columns (target_per_id and pr_con_id) in activities table (s_evt_act). So, I start looking for some eim table to do my job, and after looking my entire references I didn't find one.&lt;br /&gt;And why didn't I found one? Because, there are no explicit way to do it. So what you have to do is :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Populate s_act_contact intersection table with the desired pair activity/contact using EIM_ACTIVITY1.&lt;/li&gt;&lt;li&gt;Set ACT_TARGET_PER and ACT_PR_CON (in EIM table) to 'Y'.&lt;/li&gt;&lt;li&gt;Run EIM task.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Internally EIM will implicitly fill s_org_ext columns for you. Below you can find an ifb excerpt that do what we desire.&lt;pre&gt;[Update Activities]TYPE = IMPORT&lt;br /&gt;BATCH = 4511&lt;br /&gt;TABLE = EIM_ACTIVITY1&lt;br /&gt;ONLY BASE TABLES =  S_EVT_ACT,S_ACT_CONTACT&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1321236926106913113?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1321236926106913113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1321236926106913113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1321236926106913113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1321236926106913113'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/01/eim-how-to-populate-sevtact-contact.html' title='EIM : How to populate S_EVT_ACT contact columns.'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1593642618239577689</id><published>2008-01-07T01:47:00.000-08:00</published><updated>2008-01-07T01:52:15.917-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Get ready for Windows Server 2008.</title><content type='html'>I know this is a little bit off topic, but it's hard to forget our past.&lt;br /&gt;So that's it, Microsoft is offering some free material regarding Windows Server 2008. Check it &lt;a href="http://www.microsoft.com/learning/windowsserver2008/default.mspx#EBOOK"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hurry up, this offer is limited in time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1593642618239577689?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1593642618239577689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1593642618239577689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1593642618239577689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1593642618239577689'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/01/get-ready-for-windows-server-2008.html' title='Get ready for Windows Server 2008.'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-3046460110734142184</id><published>2008-01-03T01:07:00.000-08:00</published><updated>2008-01-03T01:17:05.018-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='interfaces'/><title type='text'>BC : How to make a read-only field</title><content type='html'>Just create a business component user prop with the following values :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Name : Field Read Only Field: &lt;strong&gt;Field Name&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Value : 'N' or 'Y'&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If this field changes from read-only to writable depending on other data, just build a calculated field that reproduces the desired behaviour and assign it to the user prop value.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-3046460110734142184?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/3046460110734142184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=3046460110734142184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3046460110734142184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3046460110734142184'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2008/01/bc-how-to-make-read-only-field.html' title='BC : How to make a read-only field'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1684627914220278492</id><published>2007-12-31T02:39:00.000-08:00</published><updated>2007-12-31T03:00:51.634-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL: Returning multiple rows into a comma separated string</title><content type='html'>&lt;div align="justify"&gt;I've spent my last days strugling to optimize a query, during one of my multiple desperate tries, I came across a crazy idea of dinamically build my query. This try have no results, but I read this &lt;a href="http://www.quest-pipelines.com/pipelines/plsql/tips.htm#july"&gt;example&lt;/a&gt; of data retrieval, and I didn't resist to write about it. So here's the code :&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;with data&lt;br /&gt;   as&lt;br /&gt;   (&lt;br /&gt;      select myvalues, row_number() over (order by myvalues) rn, count(*) over () cnt&lt;br /&gt;         from&lt;br /&gt;         (&lt;br /&gt;            select email_addr myvalues from customers where zip = 72204&lt;br /&gt;         )&lt;br /&gt;   )&lt;br /&gt;select ltrim(sys_connect_by_path(myvalues, ','),',') catvalues&lt;br /&gt;   from data&lt;br /&gt;   where rn = cnt&lt;br /&gt;   start with rn = 1&lt;br /&gt;   connect by prior rn = rn-1;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;This sample returns a comma separated string with all email addresses whith zip code 72204.&lt;/div&gt;&lt;div align="justify"&gt;But the most important &lt;a href="http://www.psoug.org/reference/connectby.html"&gt;lesson&lt;/a&gt; from this sample was learning about hierarchically connect data in one single query.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1684627914220278492?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1684627914220278492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1684627914220278492' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1684627914220278492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1684627914220278492'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/plsql-returning-multiple-rows-into.html' title='PL/SQL: Returning multiple rows into a comma separated string'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-91137055919136303</id><published>2007-12-27T06:02:00.000-08:00</published><updated>2007-12-27T06:10:21.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL : Add_Month function</title><content type='html'>Be aware of this function, it may have unexpected results :&lt;br /&gt;&lt;pre&gt;SELECT add_months(TO_DATE('27-JAN-2007'), 1) FROM dual;&lt;br /&gt;SELECT add_months(TO_DATE('28-JAN-2007'), 1) FROM dual;&lt;br /&gt;SELECT add_months(TO_DATE('29-JAN-2007'), 1) FROM dual;&lt;br /&gt;SELECT add_months(TO_DATE('30-JAN-2007'), 1) FROM dual;&lt;br /&gt;SELECT add_months(TO_DATE('31-JAN-2007'), 1) FROM dual;&lt;br /&gt;SELECT add_months(TO_DATE('01-FEV-2007'), 1) FROM dual;&lt;/pre&gt;This queries returns :&lt;br /&gt;&lt;pre&gt;27-02-2007&lt;br /&gt;28-02-2007&lt;br /&gt;28-02-2007&lt;br /&gt;28-02-2007&lt;br /&gt;28-02-2007&lt;br /&gt;01-03-2007&lt;/pre&gt;If you need to add a specific number of days, consider to use :&lt;br /&gt;&lt;pre&gt;SELECT TO_DATE('01-FEV-2007') + 30 FROM dual;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-91137055919136303?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/91137055919136303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=91137055919136303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/91137055919136303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/91137055919136303'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/plsql-addmonth-function.html' title='PL/SQL : Add_Month function'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1724972270177698260</id><published>2007-12-20T07:32:00.000-08:00</published><updated>2007-12-20T07:37:36.267-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Siebel Support Web Unleashed</title><content type='html'>&lt;div align="justify"&gt;You need to search &lt;a href="http://supportweb.siebel.com/"&gt;Siebel Support Web&lt;/a&gt;, and you don't have login nor password? Your problems end &lt;a href="http://siebelunleashed.com/siebel-support-web-unleashed/#more-93"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;But with a little workaround, you can use Supportweb for searching without having a login. How? It’s very easy. Just go to the homepage of Supportweb (which will redirect you to &lt;a href="https://ebusiness.siebel.com/Supportweb/index.asp"&gt;https://ebusiness.Siebel.com/Supportweb/index.asp&lt;/a&gt;) and at the login screen just press the “Login” button without filling in the fields.&lt;br /&gt;&lt;br /&gt;As expected nothing happens and you stay on the login page. Now, type in the address bar &lt;a href="http://supportweb.siebel.com/"&gt;http://Supportweb.Siebel.com&lt;/a&gt; and you will be able to login and search.&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1724972270177698260?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1724972270177698260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1724972270177698260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1724972270177698260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1724972270177698260'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-support-web-unleashed.html' title='Siebel Support Web Unleashed'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8314683785480571583</id><published>2007-12-20T03:18:00.000-08:00</published><updated>2007-12-20T03:57:07.792-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><title type='text'>BC : Method SetSearchExpr overrides SetSearchSpec Results</title><content type='html'>&lt;p&gt;This problem came across me with a business component query. When I looked to my recorset and saw some totally unexpected results, I resolved to dig a little.As result of my digging, I've discovered that a SetSearchExpr overrides previous SetSearchSpec instructions.&lt;/p&gt;&lt;p&gt;So&lt;pre outlining="false" numberlines="false"&gt;oBCTVCActividades.SetViewMode(AllView);&lt;br /&gt;oBCTVCActividades.ActivateField("Field1");&lt;br /&gt;oBCTVCActividades.ActivateField("Field2");&lt;br /&gt;oBCTVCActividades.ClearToQuery();&lt;br /&gt;oBCTVCActividades.SetSearchSpec("Field1", "val1");&lt;br /&gt;oBCTVCActividades.SetSearchExpr("[Field2] &lt;&gt; 'Value2'");&lt;br /&gt;oBCTVCActividades.ExecuteQuery&lt;/pre&gt;will only query for results with "Field2" different from "Value2", to achieve your goal is better to use this&lt;pre outlining="false" numberlines="false"&gt;oBCTVCActividades.SetViewMode(AllView);&lt;br /&gt;oBCTVCActividades.ActivateField("Field1");&lt;br /&gt;oBCTVCActividades.ActivateField("Field2");&lt;br /&gt;oBCTVCActividades.ClearToQuery();&lt;br /&gt;oBCTVCActividades.SetSearchExpr("[Field2] &lt;&gt; 'Value2' AND [Field1] = 'val1'");&lt;br /&gt;oBCTVCActividades.ExecuteQuery();&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8314683785480571583?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8314683785480571583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8314683785480571583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8314683785480571583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8314683785480571583'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/bc-method-setsearchexpr-overrides.html' title='BC : Method SetSearchExpr overrides SetSearchSpec Results'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-6393370095834031495</id><published>2007-12-19T07:38:00.001-08:00</published><updated>2007-12-20T05:15:41.387-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Siebel Tools : How to perform a local lock</title><content type='html'>&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: You need to change an object that is checked out by other user.&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt; : You need to locally lock the project that contains your object. So far, so good, but you have another problem,that project is locked by the user that performed check out. So all you have to do is this: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Login to your local database. Check it &lt;a href="http://siebelfordummies.blogspot.com/2007/12/siebel-tools-how-to-query-your-local.html"&gt;here&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;UPDATE siebel.s_project SET locked_flg= 'N' where name='&lt;project_to_lock&gt;' &lt;/li&gt;&lt;li&gt;commit &lt;/li&gt;&lt;li&gt;Requery tools for your project &lt;/li&gt;&lt;li&gt;Lock it!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Don't forget to synchronize both projects, so you can lost all your changes.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-6393370095834031495?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/6393370095834031495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=6393370095834031495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6393370095834031495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6393370095834031495'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-tools-how-to-perform-local-lock.html' title='Siebel Tools : How to perform a local lock'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1215415916910482137</id><published>2007-12-14T00:35:00.000-08:00</published><updated>2007-12-14T00:41:27.709-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>BC : "Immediate Post Changes" field property</title><content type='html'>When this property is set to True, in a business component field, the changes made to that fiel causes an imediate roundtrip, to server, for saving data.&lt;br /&gt;&lt;blockquote&gt;A TRUE or FALSE value.&lt;br /&gt;&lt;br /&gt;Field data is posted to the server when the focus moves off of the field and then the data is refreshed.&lt;br /&gt;&lt;br /&gt;Causes an immediate roundtrip to the server. When set to True the browser script PreSetFieldValue event is bypassed. Typically used for constrained drop-down lists and calculated fields. Excessive use affects performance.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Check &lt;a href="http://download-uk.oracle.com/docs/cd/B31104_01/books/OTR/OTRObjTypesList99.html"&gt;here&lt;/a&gt; for all field properties description.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1215415916910482137?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1215415916910482137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1215415916910482137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1215415916910482137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1215415916910482137'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/bc-immediate-post-changes-field.html' title='BC : &quot;Immediate Post Changes&quot; field property'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-4313815147868914589</id><published>2007-12-12T06:01:00.000-08:00</published><updated>2007-12-12T06:14:08.559-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Siebel Tools : How to query your local database ?</title><content type='html'>&lt;div&gt;You can perform some queries against your local database using an application provided with Siebel tools, this application can be found in &lt;siebel&gt;\tools\BIN\dbisqlc.exe.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://bp0.blogger.com/_DmLnmWcZeFg/R1_r0n1VCgI/AAAAAAAAAAU/kPUFbDauxso/s1600-h/SQL.GIF"&gt;&lt;img id="BLOGGER_PHOTO_ID_5143088588758780418" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_DmLnmWcZeFg/R1_r0n1VCgI/AAAAAAAAAAU/kPUFbDauxso/s320/SQL.GIF" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-4313815147868914589?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/4313815147868914589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=4313815147868914589' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4313815147868914589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4313815147868914589'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-tools-how-to-query-your-local.html' title='Siebel Tools : How to query your local database ?'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_DmLnmWcZeFg/R1_r0n1VCgI/AAAAAAAAAAU/kPUFbDauxso/s72-c/SQL.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-285366394505331916</id><published>2007-12-11T06:46:00.000-08:00</published><updated>2007-12-11T06:47:59.419-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='tablespace'/><title type='text'>S_ACT_CONTACT : Description</title><content type='html'>&lt;div align="justify"&gt;This table associates a contact with its activities. This relation is suported by column con_id (par_row_id from s_contact) and activity_id (activity_uid from s_evt_act).&lt;br /&gt;This is a one-to-many relationship : A contact can have more than one activity associated, but a position can only be related with one contact.&lt;br /&gt;Keep in mind that con_id is foreign key from s_party and activity_id from s_evt_act.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-285366394505331916?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/285366394505331916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=285366394505331916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/285366394505331916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/285366394505331916'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/sactcontact-description.html' title='S_ACT_CONTACT : Description'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-810174431054931195</id><published>2007-12-10T05:39:00.000-08:00</published><updated>2007-12-10T05:57:14.669-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SqlPlus'/><title type='text'>PL/SQL : How to query for &amp; in SQL*Plus?</title><content type='html'>&lt;div align="justify"&gt;Today, I tried to execute a simple query like : &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select '&amp;amp;ab' from dual; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#33cc00;"&gt;&lt;br /&gt;&lt;/span&gt;as expected I was prompted to insert value for ab...&lt;br /&gt;&lt;br /&gt;So, to query special character &lt;strong&gt;&amp;amp;&lt;/strong&gt; you have several options :&lt;/div&gt;&lt;ul&gt;&lt;li&gt;change DEFINE settings to allow &lt;strong&gt;&amp;amp;&lt;/strong&gt;;&lt;/li&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;set define off;&lt;br /&gt;select '&amp;amp;ab' from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;define a escape character;&lt;/li&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;set escape '\';&lt;br /&gt;select '\&amp;amp;ab' from dual; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;don't scan for substitution variables;&lt;/li&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;set scan off;&lt;br /&gt;select '\&amp;amp;ab' from dual;&lt;/span&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-810174431054931195?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/810174431054931195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=810174431054931195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/810174431054931195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/810174431054931195'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/plsql-how-to-query-for-in-sqlplus.html' title='PL/SQL : How to query for &amp; in SQL*Plus?'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-419589889401545935</id><published>2007-12-07T09:50:00.000-08:00</published><updated>2007-12-07T10:09:48.082-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='applets'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Siebel : How to disable an applet button?</title><content type='html'>Just edit your applet server script and add some come for &lt;span style="font-size:85%;"&gt;&lt;strong&gt;WebApplet_PreCanInvokeMethod&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;For example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33cc00;"&gt;function WebApplet_PreCanInvokeMethod (MethodName, &amp;amp;CanInvoke&lt;br /&gt;{&lt;br /&gt;   switch (MethodName)&lt;br /&gt;   {&lt;br /&gt;     case 'Metodo1':&lt;br /&gt;      if (true)&lt;br /&gt;      {&lt;br /&gt;        CanInvoke = "TRUE";&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;      {&lt;br /&gt;        CanInvoke = "FALSE";&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In this case &lt;strong&gt;Metodo1&lt;/strong&gt; will be the method being invoked by the button that you want to disable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-419589889401545935?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/419589889401545935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=419589889401545935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/419589889401545935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/419589889401545935'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-how-to-disable-applet-button.html' title='Siebel : How to disable an applet button?'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8992576731574805376</id><published>2007-12-03T02:06:00.000-08:00</published><updated>2007-12-03T03:49:44.536-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Siebel : Oracle new forums</title><content type='html'>&lt;div align="justify"&gt;Oracle had just created new &lt;a href="http://forums.oracle.com/forums/category.jspa?categoryID=151"&gt;Community Discussion Forums&lt;/a&gt; for Siebel specific applications.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Let's make it happen!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8992576731574805376?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8992576731574805376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8992576731574805376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8992576731574805376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8992576731574805376'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-oracle-new-forums.html' title='Siebel : Oracle new forums'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-7045893469274035827</id><published>2007-12-03T01:52:00.000-08:00</published><updated>2007-12-03T03:49:13.068-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Siebel : IE7 compatibility</title><content type='html'>&lt;div align="justify"&gt;Finally you can throw away your old IE 6 and install (not so new) IE7, finally Siebel fully supports it.&lt;br /&gt;Here is the list of siebel version (and QuickFixes) that supports IE7 :&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;8.0.0.1 with QF0103&lt;/li&gt;&lt;li&gt;7.8.2.5 with QF0547 &lt;/li&gt;&lt;li&gt;7.7.2.8 with QF0814 &lt;/li&gt;&lt;li&gt;7.5.3.17 &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-7045893469274035827?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/7045893469274035827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=7045893469274035827' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/7045893469274035827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/7045893469274035827'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/12/siebel-ie7-compatibility.html' title='Siebel : IE7 compatibility'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2837539100063498122</id><published>2007-11-30T05:34:00.000-08:00</published><updated>2007-11-30T05:46:31.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Harvest'/><title type='text'>Harvest : Get last file version</title><content type='html'>Imagine this situation:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You have two package P1 and P2 in the same stage, and both P1 (who is to be installed first) and P2 have an attached file F1;&lt;/li&gt;&lt;li&gt;In P1 the F1 file is in version 1, but in P2 is in version 3;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;When I try to execute P1 and I try to get F1 file, Harvest return me F1 in version 3, when it has supposed to return  version 1 of the file.&lt;/p&gt;&lt;p&gt;So take care when promoting 2 or more packages, to the same stage, with different version of the same file. &lt;a href="http://en.wikipedia.org/wiki/AllFusion_Harvest_Change_Manager"&gt;Harvest&lt;/a&gt; only get the last version of it, regardless what version you included in your package.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2837539100063498122?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2837539100063498122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2837539100063498122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2837539100063498122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2837539100063498122'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/harvest-get-last-version.html' title='Harvest : Get last file version'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-1593307511094281280</id><published>2007-11-29T03:16:00.000-08:00</published><updated>2007-11-29T03:19:38.515-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>WHy MINUS does NOT EXISTs in our queries?</title><content type='html'>&lt;p&gt;Read this great (and old) &lt;a href="http://www.oraclemagician.com/mag/magic8.pdf"&gt;article&lt;/a&gt; about MINUS vs NOT EXISTS operators.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;There really isn’t just one right way to design queries. In some cases, you really are better off using Not Exists. In many cases, however, you should use the set operator MINUS. Once you understand the principles, you can easily choose the best method for your particular case.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-1593307511094281280?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/1593307511094281280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=1593307511094281280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1593307511094281280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/1593307511094281280'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/why-minus-does-not-exists-in-our.html' title='WHy MINUS does NOT EXISTs in our queries?'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8640216100739314102</id><published>2007-11-28T06:09:00.000-08:00</published><updated>2007-11-28T06:29:59.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ANSI SQL'/><title type='text'>Joins : Please talk ANSI SQL  with me...</title><content type='html'>People, who had to port a Microsoft SQL Server or Access database over to Oracle, know what I'm talking about. This &lt;a href="http://certcities.com/editorial/columns/story.asp?EditorialsID=106"&gt;article&lt;/a&gt; show us a good example of ANSI SQL joins and also show us a few good reasons why we should use ANSI join syntax instead of classic and specific join syntax : &lt;blockquote&gt;&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;You don't need to specify the join condition in a natural join;&lt;/li&gt;&lt;li&gt;You can do more with ANSI SQL join syntax than with classic Oracle syntax;&lt;/li&gt;&lt;li&gt;There is no performance penalty;&lt;/li&gt;&lt;li&gt;In the long run you will see more of it, and less of the older syntax;&lt;/li&gt;&lt;li&gt;It's &lt;strong&gt;portable;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;It's easier to understand what is happening .&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;p&gt;Bottom line is :&lt;/p&gt;&lt;blockquote&gt;So join me in creating portable SQL joins that are easy to read, do more than you can with Oracle syntax, and don't slow you down.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8640216100739314102?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8640216100739314102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8640216100739314102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8640216100739314102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8640216100739314102'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/joins-please-talk-ansi-sql99-with-me.html' title='Joins : Please talk ANSI SQL  with me...'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2003515651939329482</id><published>2007-11-28T01:00:00.000-08:00</published><updated>2007-12-11T06:42:05.165-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='v7.5.2'/><category scheme='http://www.blogger.com/atom/ns#' term='tablespace'/><title type='text'>S_POSTN_CON : Description</title><content type='html'>This table associates a contact with positions that can acess it. This relation is suported by column con_id (par_row_id from s_contact) and postn_id (row_id from s_postn).&lt;br /&gt;This is a many-to-many relationship : A contact can have more than one position associated, and a position can be related with multiple contacts.&lt;br /&gt;Keep in mind that con_id is foreign key from s_party.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2003515651939329482?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2003515651939329482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2003515651939329482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2003515651939329482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2003515651939329482'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/spostncon.html' title='S_POSTN_CON : Description'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-5245168875792197216</id><published>2007-11-27T02:06:00.000-08:00</published><updated>2007-11-27T02:23:01.619-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLNavigator'/><title type='text'>SQL Navigator : Code Templates</title><content type='html'>After trying for a while to use SQL Navigator from &lt;a href="http://www.quest.com/sql-navigator/"&gt;Quest&lt;/a&gt; to develope my pl/sql procedures and queries, I've found a new (for me) feature : Code templates. Tired of write allways the same kind of code structures ? Use code templates. How? It's easy. Just take a look at this help page from navigator help. (As a good developer that I am, I never read help files).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;You can program Key combinations from "Ctrl+Shift+A" to "Ctrl+Shift+Z" with text up to 255 characters in length.&lt;br /&gt;To program shortcut keys&lt;/p&gt;&lt;ol&gt;&lt;li&gt;From the View menu, choose Preferences.&lt;/li&gt;&lt;li&gt;Under the Code Editors preference heading, expand General, and then scroll down to the Templates category.&lt;/li&gt;&lt;li&gt;Where you see the words &lt;edit&gt;, click and then view or change shortcut key assignments as required.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Try it, and watch your development times drop a little bit !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-5245168875792197216?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/5245168875792197216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=5245168875792197216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5245168875792197216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5245168875792197216'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/sql-navigator-code-templates.html' title='SQL Navigator : Code Templates'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-5197074638117104367</id><published>2007-11-26T06:02:00.000-08:00</published><updated>2007-11-26T06:35:11.800-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL : Check script for object owners</title><content type='html'>In real life development environments, you develope a script logged as UserX, and someone in Support Team will install it in production environment logged as UserZ.&lt;br /&gt;So far, nothing unusual happens. But, if we are talking about oracle scripts, there's something that you have to deal with, Schemas, If you didn't reference all you objects with full name, SchemaX.TableA for instance, when UserZ tries to install it, he will not find TableA in is schema.&lt;br /&gt;&lt;br /&gt;In simple scripts, with few lines, it's easy to manually check for errors, but try to do it in a scripy with thousand of lines...&lt;br /&gt;&lt;br /&gt;So I've developed this procedure to "parse" my code looking for this kind of errors&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;FUNCTION CHECK_OWNER_IN_SQL(&lt;br /&gt;   p_list varchar2,&lt;br /&gt;   p_del varchar2&lt;br /&gt;) return boolean&lt;br /&gt;is&lt;br /&gt;   l_idx pls_integer;&lt;br /&gt;   l_list varchar2(32767) := p_list;&lt;br /&gt;   l_value varchar2(32767);&lt;br /&gt;   keyword varchar2(10000);&lt;br /&gt;   existsObject integer;&lt;br /&gt;   result boolean;&lt;br /&gt;begin&lt;br /&gt;   result := false;&lt;br /&gt;   loop&lt;br /&gt;      l_idx := instr(l_list,p_del);&lt;br /&gt;      if l_idx &gt; 0 then&lt;br /&gt;         keyword := substr(l_list,1,l_idx-1);&lt;br /&gt;         select count(*) into existsObject from user_objects where lower(object_name) = lower(keyword); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;&lt;br /&gt;         if existsObject &gt; 0 then&lt;br /&gt;            DBMS_OUTPUT.Put_Line( 'Possible error in ' keyword);&lt;br /&gt;            result := true;&lt;br /&gt;         end if;&lt;br /&gt;&lt;br /&gt;         l_list := substr(l_list,l_idx+length(p_del));&lt;br /&gt;      else&lt;br /&gt;         keyword := l_list;&lt;br /&gt;         select count(*) into existsObject from user_objects where lower(object_name) = lower(keyword);&lt;br /&gt;&lt;br /&gt;         if existsObject &gt; 0 then&lt;br /&gt;            DBMS_OUTPUT.Put_Line( 'Possible error in ' keyword );&lt;br /&gt;            result := true;&lt;br /&gt;         end if;&lt;br /&gt;         exit;&lt;br /&gt;      end if;&lt;br /&gt;   end loop;&lt;br /&gt;   return result;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;&lt;br /&gt;--Possible values for p_type are :&lt;br /&gt;-- DATABASE LINK,FUNCTION,INDEX,PACKAGE,PACKAGE BODY,PROCEDURE,SEQUENCE,SYNONYM,TABLE,TRIGGER,TYPE,VIEW &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;&lt;br /&gt;PROCEDURE CHECK_OWNER(&lt;br /&gt;   p_owner IN varchar2,&lt;br /&gt;   p_type IN varchar2,&lt;br /&gt;   p_name IN varchar2,&lt;br /&gt;   p_sql IN varchar2 := NULL&lt;br /&gt;)&lt;br /&gt;IS&lt;br /&gt;   cursor lines&lt;br /&gt;   is&lt;br /&gt;      Select text from all_source where lower(owner) = lower(p_owner) and lower(type) = lower(p_type) and lower(name) = lower(p_name) order by line;&lt;br /&gt;   sqltext varchar2(32000);&lt;br /&gt;   result boolean;&lt;br /&gt;   linha integer;&lt;br /&gt;begin&lt;br /&gt;   if p_sql is not null then&lt;br /&gt;      result := siebel.check_owner_in_sql(p_sql , ' ');&lt;br /&gt;   else&lt;br /&gt;      linha := 1;&lt;br /&gt;      for line in lines loop&lt;br /&gt;         sqltext := TRIM(line.text);&lt;br /&gt;         IF substr(sqltext,1,2) &lt;&gt; '--' then&lt;br /&gt;            if siebel.check_owner_in_sql(sqltext , ' ') then&lt;br /&gt;               DBMS_OUTPUT.Put_Line( 'Linha ' linha ': ' sqltext);&lt;br /&gt;            end if;&lt;br /&gt;         end if;&lt;br /&gt;         linha := linha + 1;&lt;br /&gt;      end loop;&lt;br /&gt;      if linha = 1 then&lt;br /&gt;         DBMS_OUTPUT.Put_Line( 'Não foi encontrado o objecto a validar');&lt;br /&gt;      end if;&lt;br /&gt;   end if;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After create this two procedures, you have only to execute the last one, and watch for possible warnings in your output window.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-5197074638117104367?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/5197074638117104367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=5197074638117104367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5197074638117104367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5197074638117104367'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/plsql-check-script-for-object-owners.html' title='PL/SQL : Check script for object owners'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-3750274337009460200</id><published>2007-11-23T05:48:00.000-08:00</published><updated>2007-11-23T05:57:10.118-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><category scheme='http://www.blogger.com/atom/ns#' term='tablespace'/><title type='text'>How to relate a contact whit their accounts</title><content type='html'>Contact accounts can be found in S_PARTY_PER intersection table. This table relates person_id column (par_row_id from s_contact)  with party_id column (par_row_id from s_org_ext). Both person_id and party_id are foreign keys from s_party.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-3750274337009460200?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/3750274337009460200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=3750274337009460200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3750274337009460200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3750274337009460200'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/how-to-relate-contact-whit-their.html' title='How to relate a contact whit their accounts'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-2539193291838757871</id><published>2007-11-22T05:21:00.000-08:00</published><updated>2007-11-22T05:28:22.021-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ecology'/><title type='text'>Localcooling.com</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;Download the 100% Free LocalCooling Application and it automatically optimizes your PC's power consumption by using a more effective power save mode. You will be able to see your savings in real-time translated to more environmental terms such as how many trees and gallons of oil you have saved. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Local Cooling will: &lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cut your energy bills. &lt;/li&gt;&lt;li&gt;Reduce the amount of Greenhouse Gas CO2 emissions as a result of your reduced PC power consumption. &lt;/li&gt;&lt;li&gt;Give you full control over your power mode settings. &lt;/li&gt;&lt;li&gt;Improve your overall computing experience and efficiency. &lt;/li&gt;&lt;li&gt;Show you in detail how much you have saved since installing the software.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.localcooling.com/" target="blank"&gt;Learn more &lt;/a&gt;about the LocalCooling Application and how it will help you save energy!&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-2539193291838757871?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/2539193291838757871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=2539193291838757871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2539193291838757871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/2539193291838757871'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/localcoolingcom.html' title='Localcooling.com'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-5717288881830299439</id><published>2007-11-21T05:44:00.000-08:00</published><updated>2007-11-21T05:49:40.741-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><title type='text'>EIM : DUP_RECORD_EXISTS after Update</title><content type='html'>This status happens after running an EIM update process with lines that match exactly the lines being updated in base table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-5717288881830299439?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/5717288881830299439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=5717288881830299439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5717288881830299439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5717288881830299439'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/eim-duprecordexists-after-update.html' title='EIM : DUP_RECORD_EXISTS after Update'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-3696719977308609347</id><published>2007-11-20T06:41:00.000-08:00</published><updated>2007-11-22T05:45:38.980-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL : Scripting for table drop</title><content type='html'>I came from MS SQLServer and I miss a lot of nice functionalities, like for instance, If exists.&lt;br /&gt;Why am I talking about this? Simple, I want to run a script that "only" drops a few tables that I'don't no if they already exists.&lt;br /&gt;&lt;br /&gt;Easy to say, hard to find. So here's a script for doing that, without returning any errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;set echo off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;set heading off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;spool run.sql;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;select 'drop table 'table_name';' from dba_tables where UPPER(table_name) in ('TABLEA', 'TABLEB', 'TABLEC');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;spool off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;@run.sql;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;&lt;/span&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#33ff33;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-3696719977308609347?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/3696719977308609347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=3696719977308609347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3696719977308609347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3696719977308609347'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/plsql-scripting-for-table-drop.html' title='PL/SQL : Scripting for table drop'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8531730741679720636</id><published>2007-11-16T07:38:00.000-08:00</published><updated>2007-11-16T07:49:05.729-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><title type='text'>EIM : Shell execution order</title><content type='html'>When running an EIM process with a shell type process section, it will be executed from top to bottom. In this example, first process to run will be &lt;strong&gt;Assess&lt;/strong&gt; followed by &lt;strong&gt;Contact&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;[Siebel Interface Manager] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;PROCESS = P1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;USER NAME = "XXXX"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;PASSWORD = "XXXX"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;[Lancar] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;TYPE=SHELL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;INCLUDE = "ASSESS"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;INCLUDE = "CONTACT"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;[CONTACT]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;TYPE = DELETEBATCH = 3999&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;TABLE = EIM_CONTACT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;ONLY BASE TABLES = S_PARTY,S_CONTACT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;DELETE MATCHES = S_CONTACT, (COLUMN= 'DELETED')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;[ASSESS]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;TYPE = DELETE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;BATCH = 3998&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;TABLE = EIM_ASSESS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33ff33;"&gt;ONLY BASE TABLES = S_ASSESS,S_ASSESS_VAL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color:#33ff33;"&gt;DELETE MATCHES = S_ASSESS, (COLUMN = 'DELETED')&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8531730741679720636?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8531730741679720636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8531730741679720636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8531730741679720636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8531730741679720636'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/eim-shell-execution-order.html' title='EIM : Shell execution order'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-9109525926135396045</id><published>2007-11-15T00:51:00.000-08:00</published><updated>2007-11-21T14:54:28.945-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL : How to update using select</title><content type='html'>This "problem" came across me when I needed to update an entire temporary table column. One option is to loop all table rows, boring and time consumer task. After some background searchs I've adopted this method:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;color:#33cc00;"&gt;UPDATE &lt;/span&gt;&lt;span style="font-family:arial;font-size:78%;color:#33cc00;"&gt;TABLEA&lt;/span&gt; &lt;span style="font-family:arial;font-size:78%;color:#33cc00;"&gt;SET &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;color:#33cc00;"&gt;(TABLEA.COLUMNA, TABLEA.COLUMNB) = &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:78%;color:#33cc00;"&gt;(SELECT TABLEB.COLUMNA, TABLEB.COLUMNB FROM TABLEB WHERE TABLEB.ID = TABLEA.ID)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've basically do one inner select and join the two tables in the inner select's WHERE clause.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-9109525926135396045?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/9109525926135396045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=9109525926135396045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/9109525926135396045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/9109525926135396045'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/plsql-howo-to-update-using-select.html' title='PL/SQL : How to update using select'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-4907869850636023513</id><published>2007-11-13T10:34:00.000-08:00</published><updated>2007-11-13T10:36:39.960-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Amazing Script</title><content type='html'>Script that does exactly what you are looking for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-4907869850636023513?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/4907869850636023513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=4907869850636023513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4907869850636023513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/4907869850636023513'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/amazing-script.html' title='Amazing Script'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-6910682465636665866</id><published>2007-11-13T10:23:00.000-08:00</published><updated>2007-11-13T10:38:33.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL : Show locked objects</title><content type='html'>&lt;div align="justify"&gt;Today, after trying unsuccessfully to drop my temporary tables, and subsequent fails due to object locks, I tried to find who's locking my table.&lt;br /&gt;Not an easy task, so I dig a little and found this &lt;a href="http://siebelfordummies.blogspot.com/2007/11/amazing-script.html"&gt;amazing script&lt;/a&gt; that solved my problem. If you have the same problem, read &lt;a href="http://www.orafaq.com/scripts/performance/lockall.txt"&gt;here&lt;/a&gt; how to list all locked objects.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-6910682465636665866?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/6910682465636665866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=6910682465636665866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6910682465636665866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/6910682465636665866'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/plsql-show-locked-objects.html' title='PL/SQL : Show locked objects'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-351074944693130161</id><published>2007-11-07T06:31:00.000-08:00</published><updated>2007-11-07T06:38:21.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><title type='text'>PL/SQL Tip #1</title><content type='html'>Query v$parameter view for BD parameters checking.&lt;br /&gt;In this example I'm looking for the selected optimizer mode.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;color:#3366ff;"&gt;select value from v$parameter where name = 'optimizer_mode';&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-351074944693130161?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/351074944693130161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=351074944693130161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/351074944693130161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/351074944693130161'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/plsql-tip-1.html' title='PL/SQL Tip #1'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-3247430163014963400</id><published>2007-11-07T05:45:00.000-08:00</published><updated>2007-11-08T03:06:52.542-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Tunning'/><title type='text'>Oracle : Reducing join execution time</title><content type='html'>After executing a join over two tables, whith 4 million rows each and indexes in join columns, I realized that 4 minutes it's too much time waiting for results. So I decided to watch for the execution plan :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3366ff;"&gt;select columns from tableA join TableB on tableA.id = tableB.id&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;Execution Plan---------------------------------------------------------- &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;0 SELECT STATEMENT Optimizer=RULE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;1 0 FILTER &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;2 1 SORT (GROUP BY) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;3 2 TABLE ACCESS (BY INDEX ROWID) OF 'TABLEA' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;4 3 NESTED LOOPS &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;5 4 TABLE ACCESS (FULL) OF 'TABLEB' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#009900;"&gt;6 4 INDEX (RANGE SCAN) OF 'TABLEA_U1' (UNIQUE)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All seems to be correct, after all I'm using Rule Base Optimizer. In order to reduce execution time I force the execution of an hash join instead of a Nested Loops.&lt;br /&gt;Execution time droped to about 2 minutes and execution plan looks like this :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;Execution Plan---------------------------------------------------------- &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;0 SELECT STATEMENT Optimizer=RULE (Cost=624 Card=40000 Bytes=2 800000)&lt;br /&gt;1 0 FILTER &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;2 1 SORT (GROUP BY) (Cost=624 Card=40000 Bytes=2800000) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;3 2 HASH JOIN (Cost=172 Card=40000 Bytes=2800000) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;4 3 TABLE ACCESS (FULL) OF 'TABLEA' (Cost=35 Card=2000 Bytes=62000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#33cc00;"&gt;5 3 TABLE ACCESS (FULL) OF 'TABLEB' (Cost=136 Card=2000 Bytes=78000)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And all I've to do is change my query to :&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;select /*+ USE_HASH (tableA tableB ) */ columns from tableA join TableB on tableA.id = tableB.id&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Why is this happening? why RBO this choose this plan? The answer is simple, RBO doesn't consider hash joins has a valid execution path, so you have to force it.&lt;br /&gt;This specific join is used when a large amount of data needs to be joined or when a large fraction of the the table needs to be joined, however this is a very memory expensive operation and need to be carefully analised.&lt;br /&gt;&lt;br /&gt;Last but not least, if you want that hash joins were a valid option just start using Cost Base Optimizer. If you don't decide yet what join you should use, just read &lt;a href="http://oracle-unix.blogspot.com/2005/12/nested-loop-hash-join-and-merge-join.html"&gt;this&lt;/a&gt; article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-3247430163014963400?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/3247430163014963400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=3247430163014963400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3247430163014963400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3247430163014963400'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/oracle-reducing-join-execution-time.html' title='Oracle : Reducing join execution time'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-3026183527414642126</id><published>2007-11-07T05:37:00.000-08:00</published><updated>2007-11-07T05:42:18.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SqlPlus'/><title type='text'>SQL * Plus Tip #1</title><content type='html'>To change the previous query,  just type EDIT, this command will redirect you into an editor so you can edit previous SQL command, short name : ED.&lt;br /&gt;&lt;br /&gt;Then type /  and the new SQL command will be executed&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-3026183527414642126?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/3026183527414642126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=3026183527414642126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3026183527414642126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/3026183527414642126'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/sql-plus-tip-1.html' title='SQL * Plus Tip #1'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8427103275696666937</id><published>2007-11-06T09:28:00.000-08:00</published><updated>2007-11-07T01:32:34.919-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : SQLCODE and SQLERRM in Inserts</title><content type='html'>Today I came across an unexpected problem when executing an exception block inside a procedure :&lt;br /&gt;&lt;br /&gt;My code was something like this :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;color:#3366ff;"&gt;insert into dc_errors (error_message,error_date) values (SQLERRM, SYSDATE);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and I allways obtain an annoying PL/SQL: ORA-00984: column not allowed here.&lt;br /&gt;&lt;br /&gt;To solve this problem I've changed my code into :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;color:#3366ff;"&gt;v_exception := substr(SQLERRM, 1, 256);&lt;br /&gt;insert into dc_errors (error_message,error_date) values (v_exception, SYSDATE);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;color:#3366ff;"&gt;&lt;/span&gt;&lt;br /&gt;with v_exception as varchar2(256) .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8427103275696666937?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8427103275696666937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8427103275696666937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8427103275696666937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8427103275696666937'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/oracle-sqlcode-and-sqlerrm-in-inserts.html' title='Oracle : SQLCODE and SQLERRM in Inserts'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8010974027471808607</id><published>2007-11-05T05:25:00.000-08:00</published><updated>2007-11-05T05:34:05.573-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>The greatest invention since the wheel</title><content type='html'>Today, after spend some time reading  a friend's &lt;a href="http://devcatharsis.blogspot.com/"&gt;blog&lt;/a&gt;, I realize that &lt;a href="http://www.findfiles.com/14947/details-notworkingbar.html"&gt;Not Working Bar&lt;/a&gt; will bring a revolution to our work environments. Read more about it &lt;a href="http://devcatharsis.blogspot.com/2007/11/do-you-need-rest.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks for the tip Mário.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8010974027471808607?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8010974027471808607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8010974027471808607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8010974027471808607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8010974027471808607'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/greatest-invention-since-wheel.html' title='The greatest invention since the wheel'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-9012881845132945016</id><published>2007-11-05T02:44:00.000-08:00</published><updated>2007-11-06T02:32:35.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tunning'/><title type='text'>Oracle : Reduce your parsing times</title><content type='html'>All the queries that you execute in an Oracle database are parsed and then executed. However, is a nonsense(and a time wastefulness) to parse over and over the same query, even if executed by different users.&lt;br /&gt;&lt;br /&gt;So, to avoid this, Oracle uses a 'Shared pool' area where all the cursors are cached after being parsed.&lt;br /&gt;&lt;br /&gt;How it works? It's easy:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Your query is hashed;&lt;/li&gt;&lt;li&gt;Oracle searchs shared pool for the matching hash value;&lt;/li&gt;&lt;li&gt;Is it there? If so, execute the cursor;&lt;/li&gt;&lt;li&gt;Otherwise parse your query, hash it and put it in shared pool for future executions;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;To take advantage of this feature of Oracle engine, we have to take care for:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Hashing is executed over all your query, so Case is important. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Select * from emp&lt;/strong&gt; is different from &lt;strong&gt;Select * from EMP&lt;/strong&gt; and therefore you will not take advantage of shared pool in your second execution; So, it's important that your developers team agree in Naming and Case conventions to take greater advantage of Oracle Shared Pool.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Where clauses are hashed too;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Select * from emp where emp_no = 1 &lt;/strong&gt;is different from &lt;strong&gt;Select * from emp where emp_no = 2&lt;/strong&gt;, use global variables and procedures whenever you can.&lt;/p&gt;&lt;p&gt;If you follow this rules, you will not solve all the performance problems from your application but will give a little step toward the perfection.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-9012881845132945016?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/9012881845132945016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=9012881845132945016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/9012881845132945016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/9012881845132945016'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/oracle-reduce-your-parsing-times.html' title='Oracle : Reduce your parsing times'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-5407049472679612546</id><published>2007-11-02T02:22:00.000-07:00</published><updated>2007-11-02T02:35:52.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Copy'/><category scheme='http://www.blogger.com/atom/ns#' term='Files'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote Server'/><title type='text'>How to deploy files in a remote server?</title><content type='html'>It's easy you say, just share your drives when you connect through &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/f47ce263-f72e-469d-bf14-6605b7f4cce51033.mspx?mfr=true"&gt;rdp&lt;/a&gt;. Ok, let's talk about worse case scenario, you can't share drives and you can even share a drive from your remote server.&lt;br /&gt;So you can use a very usefull tool named &lt;a href="http://en.wikipedia.org/wiki/WordPad"&gt;WordPad&lt;/a&gt;. Surprised ?&lt;br /&gt;It's even easier than sharing you drives, watch it :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Zip all your files into a single file;&lt;/li&gt;&lt;li&gt;Open a wordpad in your local machine;&lt;/li&gt;&lt;li&gt;Copy zip file into wordpad (WordPad would serialize your file);&lt;/li&gt;&lt;li&gt;Copy object that appears inside Wordpad;&lt;/li&gt;&lt;li&gt;Open wordpad in your remote machine and paste your object into it;&lt;/li&gt;&lt;li&gt;Finally copy your recent pasted object into remote server.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-5407049472679612546?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/5407049472679612546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=5407049472679612546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5407049472679612546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/5407049472679612546'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/11/how-to-deploy-files-in-remote-server.html' title='How to deploy files in a remote server?'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8273269864836962124</id><published>2007-10-31T04:27:00.000-07:00</published><updated>2007-11-08T03:08:04.232-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EIM'/><category scheme='http://www.blogger.com/atom/ns#' term='diccache'/><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><title type='text'>Error 452: Match column X not found in Y</title><content type='html'>Today I had to create a new column in EIM_CONTACT table, to build a new attribute mapping for deletion purposes. All went fine until I test my EIM task.&lt;br /&gt;&lt;br /&gt;Error 452: Match column X_COLUMN not found in S_CONTACT.&lt;br /&gt;&lt;br /&gt;I run trough all my steps to find what's wrong in it. All seems to be in perfect shape. My next step was to loose some time reading bookshelf and Siebel support SR's. Nothing came across that helped me to solve my problem.&lt;br /&gt;&lt;br /&gt;Last step in problem resolution algorithm, ask for help. Allways work!!&lt;br /&gt;&lt;br /&gt;My colleague João had the solution, Siebel caches EIM mappings in &lt;serverdirectory&gt;\siebsrvr\BIN\&lt;strong&gt;diccache.dat&lt;/strong&gt;, all we have to do is delete this file and Siebel will build a new one for you (with your new mappings).&lt;br /&gt;&lt;br /&gt;Finally, I successfully ran my EIM process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8273269864836962124?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8273269864836962124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8273269864836962124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8273269864836962124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8273269864836962124'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/10/error-452-match-column-x-not-found-in-y.html' title='Error 452: Match column X not found in Y'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1047006429728597539.post-8556196350873598704</id><published>2007-10-30T04:36:00.000-07:00</published><updated>2007-10-30T04:52:46.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firewall'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='siebel'/><title type='text'>Debugging in http://localhost:8082</title><content type='html'>Today I've made my first siebel project compilation, all my environment is brand new and well configured.&lt;br /&gt;I've enabled 'Auto-start web client' feature and hit the road. IExplorer browses &lt;a href="http://localhost:8082/"&gt;http://localhost:8082/&lt;/a&gt; and inherent error. Why in God's name is this happening?&lt;br /&gt;&lt;br /&gt;The answer is simple, (If my friend Alexandre didn't help me, it wouldn't be so simple), my Firewall is enabled.&lt;br /&gt;&lt;br /&gt;After I disabled that, my debug can go on!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1047006429728597539-8556196350873598704?l=siebelfordummies.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebelfordummies.blogspot.com/feeds/8556196350873598704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1047006429728597539&amp;postID=8556196350873598704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8556196350873598704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1047006429728597539/posts/default/8556196350873598704'/><link rel='alternate' type='text/html' href='http://siebelfordummies.blogspot.com/2007/10/debugging-in-httplocalhost8082.html' title='Debugging in http://localhost:8082'/><author><name>Juanito Caminante</name><uri>http://www.blogger.com/profile/16388117591961652934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
