<?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-6077706395127940748</id><updated>2011-07-21T04:44:32.989-07:00</updated><category term='SQL Developer'/><title type='text'>Oracle Tips and Tricks</title><subtitle type='html'>A place for all those bits of knowledge you gain while working with a tool like OWB and other Oracle tools.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-8543445622977859459</id><published>2009-09-18T09:21:00.001-07:00</published><updated>2009-09-18T09:22:08.313-07:00</updated><title type='text'>Back in Action</title><content type='html'>Finally starting this blog back up.  Cody and I have greatly expanded our knowledge base on Oracle products and are excited about continuing to blog what we find out.  Hope you enjoy... and maybe we will see you at OOW&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8543445622977859459?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8543445622977859459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8543445622977859459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8543445622977859459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8543445622977859459'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2009/09/back-in-action.html' title='Back in Action'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-8640877686494374627</id><published>2009-02-19T08:13:00.000-08:00</published><updated>2009-02-19T08:16:43.219-08:00</updated><title type='text'>Using CGI Environment Variable in APEX</title><content type='html'>If you execute the following in SQL Workshop of APEX you will get a list of the variables that are available for use.&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;OWA_UTIL.PRINT_CGI_ENV;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;This will return:&lt;br /&gt;&lt;br /&gt;PLSQL_GATEWAY = WebDb&lt;br /&gt;&lt;br /&gt;GATEWAY_IVERSION = 2&lt;br /&gt;&lt;br /&gt;SERVER_SOFTWARE = Oracle Embedded PL/SQL Gateway/11.1.0.6.0&lt;br /&gt;&lt;br /&gt;GATEWAY_INTERFACE = CGI/1.1&lt;br /&gt;&lt;br /&gt;SERVER_PORT = 8080&lt;br /&gt;&lt;br /&gt;SERVER_NAME = XDB HTTP Server&lt;br /&gt;&lt;br /&gt;REQUEST_METHOD = POST&lt;br /&gt;&lt;br /&gt;PATH_INFO = /wwv_flow.show&lt;br /&gt;&lt;br /&gt;SCRIPT_NAME = /apex&lt;br /&gt;&lt;br /&gt;REMOTE_HOST = &lt;br /&gt;&lt;br /&gt;REMOTE_ADDR = 10.26.0.97&lt;br /&gt;&lt;br /&gt;SERVER_PROTOCOL = HTTP/1.1&lt;br /&gt;&lt;br /&gt;REQUEST_PROTOCOL = HTTP&lt;br /&gt;&lt;br /&gt;REMOTE_USER = ANONYMOUS&lt;br /&gt;&lt;br /&gt;ORACLE_SSO_USER = &lt;br /&gt;&lt;br /&gt;HTTP_CONTENT_LENGTH = 285&lt;br /&gt;&lt;br /&gt;HTTP_CONTENT_TYPE = application/x-www-form-urlencoded; charset=UTF-8&lt;br /&gt;&lt;br /&gt;HTTP_USER_AGENT = Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)&lt;br /&gt;&lt;br /&gt;HTTP_HOST = sparrow.hidinc.com:8080&lt;br /&gt;&lt;br /&gt;HTTP_ACCEPT = text/html&lt;br /&gt;&lt;br /&gt;HTTP_ACCEPT_ENCODING = gzip&lt;br /&gt;&lt;br /&gt;HTTP_ACCEPT_LANGUAGE = en-us&lt;br /&gt;&lt;br /&gt;HTTP_ACCEPT_CHARSET = ISO-8859-1&lt;br /&gt;&lt;br /&gt;HTTP_REFERER = http://sparrow.hidinc.com:8080/apex/f?p=4500:1003:3536261107957055::NO:::&lt;br /&gt;&lt;br /&gt;WEB_AUTHENT_PREFIX = &lt;br /&gt;&lt;br /&gt;DAD_NAME = apex&lt;br /&gt;&lt;br /&gt;DOC_ACCESS_PATH = docs&lt;br /&gt;&lt;br /&gt;DOCUMENT_TABLE = wwv_flow_file_objects$&lt;br /&gt;&lt;br /&gt;PATH_ALIAS = &lt;br /&gt;&lt;br /&gt;REQUEST_CHARSET = AL32UTF8&lt;br /&gt;&lt;br /&gt;REQUEST_IANA_CHARSET = UTF-8&lt;br /&gt;&lt;br /&gt;SCRIPT_PREFIX = &lt;br /&gt;&lt;br /&gt;HTTP_COOKIE = WWV_CUSTOM-F_4752219103344869_117=336B3BAFD41DE0F0; WWV_CUSTOM-F_4752219103344869_113=C7DAB25C26BF73CF; WWV_CUSTOM-F_988309881576256_1000=6F199DA1AEF14FB0; WWV_CUSTOM-F_4752219103344869_114=C544CAFF903CDE0F; oracle.uix=0^^GMT-6:00; activity_ask_expert=1|9500346262672; ORA_WWV_USER=336B3BAFD41DE0F0; ORA_WWV_REMEMBER_UN=BRIAN.BURDITT:BRIAN_TEST; ORA_WWV_ATTRIBUTE_PAGE=4301%2C%23HEAD; LOGIN_USERNAME_COOKIE=brian.burditt; ORA_WWV_R1=%23ALL; ORA_WWV_R2=%23ALL; ORA_WWV_R3=%23ALL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This can now be used with owa_util.get_cgi_env() for validations on these items.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8640877686494374627?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8640877686494374627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8640877686494374627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8640877686494374627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8640877686494374627'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2009/02/using-cgi-environment-variable-in-apex.html' title='Using CGI Environment Variable in APEX'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-2495733004589588023</id><published>2009-02-18T08:11:00.000-08:00</published><updated>2009-02-19T09:18:52.862-08:00</updated><title type='text'>Issues with APEX/AJAX/Extjs</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;TOPICS&lt;/p&gt;&lt;p&gt;APEX&lt;/p&gt;&lt;p&gt;AJAX&lt;/p&gt;&lt;p&gt;Application Process / On Demand&lt;/p&gt;&lt;p&gt;Ext.tree.AsyncTreeNode&lt;/p&gt;&lt;p&gt;Ext.tree.TreeLoader&lt;/p&gt;&lt;p&gt;Ext.tree.TreePanel&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Application Process / On Demand&lt;br /&gt;---------------------------------------&lt;/p&gt;&lt;p&gt;&lt;pre&gt;DECLARE v_Return CLOB;  l_nStartPostion NUMBER(22,0) := 1;  l_nEndPostion   NUMBER(22,0);  l_vcBuffer      VARCHAR2(32767);  l_TotalLength   NUMBER(22,0);&lt;br /&gt;BEGIN   --set up   owa_util.mime_header('text/html', FALSE );   htp.p('Cache-Control: no-cache');   htp.p('Pragma: no-cache');   owa_util.http_header_close;&lt;br /&gt;   --Get JSON string   --[{"text":"My folder","id":"10","cls":".folder","leaf":false},{"text":"another folder","id":"11","cls":".folder","leaf":false}]&lt;br /&gt;   v_Return:= PKG_REPORT_REPOSITORY.PFUNC_GET_NODE_CHILDREN(wwv_flow.g_x01);&lt;br /&gt;   --What is the total length of the JSON string   l_TotalLength := dbms_lob.getlength(v_Return);      --Set the end postion   l_nEndPostion:= 30000;&lt;br /&gt;   --cycle until we are at the end   WHILE l_nEndPostion &lt;= l_TotalLength    LOOP     l_vcBuffer := dbms_lob.substr       (v_Return       ,l_nEndPostion-l_nStartPostion + 1       ,l_nStartPostion        );         --send the output     htp.p(l_vcBuffer );          --reset the start and end     l_nStartPostion := l_nEndPostion +1 ;     l_nEndPostion :=   l_nEndPostion +30000;   END LOOP;  l_vcBuffer := dbms_lob.substr(v_Return,l_TotalLength-l_nStartPostion +1,l_nStartPostion  );  htp.p(l_vcBuffer);&lt;br /&gt;END;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Ext.tree.TreeLoader&lt;/p&gt;&lt;p&gt;------------------------------&lt;br /&gt;// Create user extensions namespace (Ext.hid)//Ext.hid.TreeLoader.jsExt.namespace('Ext.hid'); /**  * Ext.hid.TreeLoader Extension Class  *  * @author Daniel Moody  * @version 1.0  *  * @class Ext.hid.TreeLoader  * @extends Ext.tree.TreeLoader  * @constructor  * @param {Object} config Configuration options  */Ext.hid.TreeLoader = function(config) {     // call parent constructor    Ext.hid.TreeLoader.superclass.constructor.call(this, config);}; // end of Ext.hid.TreeLoader constructor &lt;br /&gt;// extendExt.extend(Ext.hid.TreeLoader, Ext.tree.TreeLoader,{ nodeParamName:"node",&lt;br /&gt;getParams:function(D){var A=[],C=this.baseParams;for(var B in C){if(typeof C[B]!="function"){A.push(encodeURIComponent(B),"=",encodeURIComponent(C[B]),"&amp;amp;");}}A.push(this.nodeParamName + "=",encodeURIComponent(D.id));return A.join("");}&lt;br /&gt;}); // end of extend // end of file&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Ext application&lt;br /&gt;----------------------------&lt;/p&gt;&lt;p&gt;.&lt;/p&gt;&lt;p&gt;.&lt;/p&gt;&lt;p&gt;.&lt;br /&gt;var u = (window.location.href.indexOf("?") &gt; 0) ? window.location.href.substring(0,window.location.href.indexOf("?")) : window.location.href;var baseURL = u.substring(0,u.lastIndexOf("/"));baseURL = baseURL + '/wwv_flow.show?p_flow_id=' + Ext.getDom('pFlowId').value + '&amp;amp;p_flow_step_id=0&amp;amp;p_instance=' + Ext.getDom('pInstance').value + '&amp;amp;p_request=APPLICATION_PROCESS=GET_NODE_CHILDREN';      myTreeLoader = new Ext.hid.TreeLoader( {dataUrl:baseURL,nodeParamName: 'x01'} );&lt;br /&gt;myRoot = new Ext.tree.AsyncTreeNode({ id:'0', text:'Report Repository',  split:true}); myTree = new Ext.tree.TreePanel({ id:'im-tree', width:200, split: true, region: 'west', title: 'Folders', loader: myTreeLoader, rootVisible:true, lines:true, autoScroll:true, root: myRoot});&lt;/p&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-2495733004589588023?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/2495733004589588023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=2495733004589588023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2495733004589588023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2495733004589588023'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2009/02/issues-with-apexajaxextjs.html' title='Issues with APEX/AJAX/Extjs'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-1297251197427398481</id><published>2008-10-16T08:16:00.001-07:00</published><updated>2008-10-16T08:40:26.926-07:00</updated><title type='text'>Under the OWB engine</title><content type='html'>&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;My, it has been a long time since I have posted shame on me. Today we are going to show you a little under the engine of OWB. More specifically, some queries to extract details of a map from the repository. First, I make no guarantees that the following is 100% correct.  At least these queries may help you get a foothold on how OWB is storing maps, projects, and properties.&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the project ID&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;select I_1 &lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;where S2_1 = 'CMPWBProject'&lt;br /&gt;and S2_3 = 'DSS_'  'FIN'&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;8184190&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the install oracle folder in the project&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;select * --I_1&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;WHERE R_19 = 8184190&lt;br /&gt;    and S2_1 = 'CMPWBDataWarehouse'&lt;br /&gt;    and S1_8 = 'Production'&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;8344258&lt;br /&gt;&lt;br /&gt;---NOTE-----------------------------------------------------------&lt;br /&gt;---    Other options&lt;br /&gt;---        CMPWBDataWarehouse&lt;br /&gt;---        CMPProcessInstalledModule process flow modules&lt;br /&gt;---        CMPWBFileInstalledModule flat file folder&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the expected files list&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;select S3_4&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258&lt;br /&gt;    and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;f_recip_alt_id.dat&lt;br /&gt;f_clm_hdr.dat&lt;br /&gt;f_hdr.dat&lt;br /&gt;f_note.dat&lt;br /&gt;f_pybl.dat&lt;br /&gt;f_pybl_recv.dat&lt;br /&gt;f_recv.dat&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the filename and stored location name&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;SELECT a.S3_4,b.S3_4 FROM&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'&lt;br /&gt;) A&lt;br /&gt;INNER JOIN&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILELOC'&lt;br /&gt;) B&lt;br /&gt;ON A.R_11 = b.R_11&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;&lt;br /&gt; f_recip_alt_id.dat  60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_clm_hdr.dat       60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_hdr.dat           60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_note.dat          60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_pybl.dat          60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_pybl_recv.dat     60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt; f_recv.dat          60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the filename and directory&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;SELECT a.S3_4, E.S3_4 &lt;br /&gt;&lt;br /&gt;FROM&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'&lt;br /&gt;) A&lt;br /&gt;INNER JOIN&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILELOC'&lt;br /&gt;) B&lt;br /&gt;ON A.R_11 = b.R_11&lt;br /&gt;INNER JOIN&lt;br /&gt;"OWB_REPOSOWNER".CMPFCOCLASSES C&lt;br /&gt;ON C.S2_5  ':' C.S2_3 = B.S3_4&lt;br /&gt;INNER JOIN "OWB_REPOSOWNER"."CMPSCOPRPCLASSES" E&lt;br /&gt;    ON E.R_15 = C.I_1&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;&lt;br /&gt; f_recip_alt_id.dat  J:\FIN\&lt;br /&gt; f_clm_hdr.dat       J:\FIN\&lt;br /&gt; f_hdr.dat           J:\FIN\&lt;br /&gt; f_note.dat          J:\FIN\&lt;br /&gt; f_pybl.dat          J:\FIN\&lt;br /&gt; f_pybl_recv.dat     J:\FIN\&lt;br /&gt; f_recv.dat          J:\FIN\&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;--- To get the database connection details. This is good to verify that the map&lt;br /&gt;---  will run  into the correct user schema and the correct oracle instance.&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;select A "table_name"&lt;br /&gt;, MAX(DECODE(B,'CMPLocation_Host',C)) as "HOST"&lt;br /&gt;, MAX(DECODE(B,'CMPLocation_ConnectAsUser', C)) as "USER_SCHEMA"&lt;br /&gt;, MAX(DECODE(B,'CMPLocation_ServiceName',C)) as "SERVICE_NAME"&lt;br /&gt;from&lt;br /&gt;(&lt;br /&gt;&lt;br /&gt;SELECT a.S3_4 a,E.S4_1 b, E.S3_4 c&lt;br /&gt;FROM&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = 'DATAENTITY.PARENT_OBJECT_NAME'&lt;br /&gt;) A&lt;br /&gt;INNER JOIN&lt;br /&gt;(select *&lt;br /&gt;FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"&lt;br /&gt;where R_11 IN&lt;br /&gt;    (select I_1&lt;br /&gt;    FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"&lt;br /&gt;    where r_17 = 8344258 and s2_1 = 'CMPMap'&lt;br /&gt;    )&lt;br /&gt;    and S4_1 = '8i.MAPPING.ENTITY.LOCATION'&lt;br /&gt;) B&lt;br /&gt;ON A.R_11 = b.R_11&lt;br /&gt;INNER JOIN&lt;br /&gt;"OWB_REPOSOWNER".CMPFCOCLASSES C&lt;br /&gt;ON C.S2_5  ':' C.S2_3 = B.S3_4&lt;br /&gt;INNER JOIN "OWB_REPOSOWNER"."CMPSCOPRPCLASSES" E&lt;br /&gt;    ON E.R_15 = C.I_1&lt;br /&gt;&lt;br /&gt;) g&lt;br /&gt;&lt;br /&gt;group by A&lt;br /&gt;order by A&lt;br /&gt;&lt;br /&gt;---RESULT---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;table_name      HOST     USER_SCHEMA     SERVICE_NAME    &lt;br /&gt; --------------  -------  --------------  ----------------&lt;br /&gt; FIN_BEN_ALT_ID  raca     ODS0_FIN        dss.jp.db.com&lt;br /&gt; FIN_CLM_HDR     raca     ODS1_FIN        dss.jp.db.com&lt;br /&gt; FIN_HDR         raca     ODS1_NET        dss.jp.db.com&lt;br /&gt; FIN_NOTE        raca     ODS1_REC        dss.JP.db.COM&lt;br /&gt; FIN_PYBL        racd     ODS2            dss.jp.db.com&lt;br /&gt; FIN_PYBL_RECV   racd     ODS2            dss.jp.db.com&lt;br /&gt; FIN_RECV        racd     ODS2            dss.jp.db.com&lt;br /&gt;&lt;br /&gt;---================================================================&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-1297251197427398481?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/1297251197427398481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=1297251197427398481' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1297251197427398481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1297251197427398481'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/10/under-owb-engine.html' title='Under the OWB engine'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-6523411840621968154</id><published>2008-07-11T09:39:00.001-07:00</published><updated>2008-07-11T11:43:34.815-07:00</updated><title type='text'>Job Monitor</title><content type='html'>This is more of a tip, but instead of using the control center manager to watch the state of an executing map or process flow, you can use the job monitor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMztdfonI/AAAAAAAAAGM/-6SpxrbeAMk/s1600-h/jobmonitor1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5221797112963900018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMztdfonI/AAAAAAAAAGM/-6SpxrbeAMk/s400/jobmonitor1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMzyFe2LI/AAAAAAAAAGU/8vytv2p9pzs/s1600-h/jobmonitor2.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMzyFe2LI/AAAAAAAAAGU/8vytv2p9pzs/s1600-h/jobmonitor2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5221797114205362354" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMzyFe2LI/AAAAAAAAAGU/8vytv2p9pzs/s400/jobmonitor2.JPG" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-6523411840621968154?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/6523411840621968154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=6523411840621968154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6523411840621968154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6523411840621968154'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/07/job-monitor.html' title='Job Monitor'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://3.bp.blogspot.com/_MNvQ0L_0r8k/SHeMztdfonI/AAAAAAAAAGM/-6SpxrbeAMk/s72-c/jobmonitor1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-4754326243394046179</id><published>2008-07-11T08:18:00.000-07:00</published><updated>2008-07-11T08:25:18.437-07:00</updated><title type='text'>Query for the audit Log file</title><content type='html'>You might be asking yourself “Man I would love to query out the log file instead of opening the file in a directory.”  Well, today you get your wish.&lt;br /&gt;&lt;br /&gt;After you run a map, get the AUDIT_EXECUTION_ID.(you can get that in the job monitor or the control center manager).  Now open SQL Developer and switch to the user schema where your repository is located.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT * FROM WB_RT_AUDIT_FILES WHERE AUDIT_EXECUTION_ID = 2895504 &lt;br /&gt;&lt;br /&gt;SQL*Loader: Release 10.2.0.1.0 - Production on Thu Jul 10 13:08:27 2008&lt;br /&gt;Copyright (c) 1982, 2005, Oracle.  All rights reserved.&lt;br /&gt;Control File:   J:\XXXXXXXXXX.ctlCharacter Set WE8MSWIN1252 specified for all input.&lt;br /&gt;Data File:      J:\XXXXXXXXXX.txt  Bad File:     c:\XXXXXXXXXX.bad  Discard File: c:\XXXXXXXXXX.dsc  (Allow 0 discards)&lt;br /&gt;Number to load: ALLNumber to skip: 0Errors allowed: 50Bind array:     200 rows, maximum of 50000 bytesContinuation:   Concatenate every 1 physical recordsPath used:      ConventionalSilent options: FEEDBACKTable "TMP_XXXXXXXXXX", loaded from every logical record.Insert option in effect for this table: APPENDTRAILING NULLCOLS option in effect&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;br /&gt;Danny&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-4754326243394046179?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/4754326243394046179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=4754326243394046179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4754326243394046179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4754326243394046179'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/07/query-for-audit-log-file.html' title='Query for the audit Log file'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-6883481407933038684</id><published>2008-07-07T10:44:00.000-07:00</published><updated>2008-07-07T10:49:31.316-07:00</updated><title type='text'>Oracle IIF</title><content type='html'>Hello All,&lt;br /&gt;&lt;br /&gt;One of the native functions I miss a lot from SQL Server is the IIF. (&lt;a href="http://msdn.microsoft.com/en-us/library/27ydhh0d(VS.71).aspx"&gt;http://msdn.microsoft.com/en-us/library/27ydhh0d(VS.71).aspx&lt;/a&gt;). So I made one for myself for Oracle. Simple but very useful.&lt;br /&gt;&lt;br /&gt;Enjoy,&lt;br /&gt;Danny&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  v_Return VARCHAR2(200);&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;  v_Return := IIF(&lt;br /&gt;    1=2,&lt;br /&gt;    'YES',&lt;br /&gt;    'NO'&lt;br /&gt;  );&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE('v_Return = '  v_Return);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace&lt;br /&gt;FUNCTION ODS_ETL.IIF&lt;br /&gt;( param1 IN BOOLEAN&lt;br /&gt;, param2 IN VARCHAR2&lt;br /&gt;, param3 IN VARCHAR2&lt;br /&gt;) RETURN VARCHAR2 AS&lt;br /&gt;BEGIN&lt;br /&gt;  IF param1&lt;br /&gt;  THEN&lt;br /&gt;  RETURN param2;&lt;br /&gt;  ELSE&lt;br /&gt;  RETURN param3;&lt;br /&gt;  END IF;&lt;br /&gt;END IIF;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-6883481407933038684?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/6883481407933038684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=6883481407933038684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6883481407933038684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6883481407933038684'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/07/oracle-iif.html' title='Oracle IIF'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-5412076317344129385</id><published>2008-05-30T12:06:00.000-07:00</published><updated>2008-05-30T12:07:42.304-07:00</updated><title type='text'>What is the last day of last month and more</title><content type='html'>To get the first day of the month last month use this:&lt;br /&gt;select TRUNC(ADD_MONTHS(SYSDATE, - 1), 'MONTH')FROM DUAL&lt;br /&gt;&lt;br /&gt;To get the last day of the month, use this:&lt;br /&gt;select LAST_DAY(ADD_MONTHS(SYSDATE, - 1))FROM DUAL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5412076317344129385?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5412076317344129385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5412076317344129385' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5412076317344129385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5412076317344129385'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/what-is-last-day-of-last-month-and-more.html' title='What is the last day of last month and more'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-4676169456009712331</id><published>2008-05-20T14:26:00.000-07:00</published><updated>2008-05-21T07:08:30.878-07:00</updated><title type='text'>What is the name of the Schedule that is running a Process Flow</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-4676169456009712331?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/4676169456009712331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=4676169456009712331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4676169456009712331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4676169456009712331'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/what-is-name-of-schedule-that-is.html' title='What is the name of the Schedule that is running a Process Flow'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-5892576597213767384</id><published>2008-05-20T08:31:00.001-07:00</published><updated>2008-05-20T08:39:42.050-07:00</updated><title type='text'>One of my main irks with Oracle Warehouse Builder (OWB)</title><content type='html'>One of my main irks with Oracle Warehouse Builder (OWB) is the lame messages you receive. I mean seriously, they can leave you with a sense of what hell does that mean and frustration to the point of pulling your hair out.&lt;br /&gt;&lt;br /&gt;My case in point today was I had a function with a parameter that returns back a number that is to be used in a wait activity (figure 1). Sound simple enough doesn’t? Wrong. So you can see in figure2 the parameter for the function. And in Figure 3 you can see the binding of wait time to this return parameter.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLu8-oTZyI/AAAAAAAAAEU/VtMQVOw7DB0/s1600-h/figure1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202483250937947938" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLu8-oTZyI/AAAAAAAAAEU/VtMQVOw7DB0/s400/figure1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;figure 1&lt;/div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SDLvTeoTZzI/AAAAAAAAAEc/t1rgtPk9WQA/s1600-h/figure2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202483637485004594" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SDLvTeoTZzI/AAAAAAAAAEc/t1rgtPk9WQA/s400/figure2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;figure 2&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLvcuoTZ0I/AAAAAAAAAEk/SDCghzRJnvg/s1600-h/figure3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202483796398794562" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLvcuoTZ0I/AAAAAAAAAEk/SDCghzRJnvg/s400/figure3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;figure 3&lt;br /&gt;&lt;br /&gt;Validation of the map was ok. I then deployed the map but that failed. The reason?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;GEAP_WRK CreateError RPE-02040: Internal error: P_NWAIT_BETWEEN_EXTRACTS cannot be converted to a constant value. Please correct the value. If the problem persists then please contact Oracle Support with the stack trace and details on how to reproduce it.&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;See what I mean, this helps no one understand what the problem is or how to fix it. Fortunately I have run across this problem before so I pretty much know what to do. In this case you need to create a process flow variable and bind the parameter to this value. Then you need to bind the wait time property to this variable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5892576597213767384?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5892576597213767384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5892576597213767384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5892576597213767384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5892576597213767384'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/one-of-my-main-irks-with-oracle.html' title='One of my main irks with Oracle Warehouse Builder (OWB)'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLu8-oTZyI/AAAAAAAAAEU/VtMQVOw7DB0/s72-c/figure1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-223175241041352440</id><published>2008-05-20T07:26:00.000-07:00</published><updated>2008-05-20T07:34:16.069-07:00</updated><title type='text'>Error messages when there are no errors in OWB</title><content type='html'>It appears that oracle warehouse builder (OWB) will tell you have an error even though there is no error. Case in point, while creating a process flow, I had a Stored Procedure from a package returning back a Boolean value. I use this return value to determine the transition to the next activity as seen in figure 1.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfqOoTZuI/AAAAAAAAAD0/iV4HKBfSbuI/s1600-h/figure1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202466436140984034" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfqOoTZuI/AAAAAAAAAD0/iV4HKBfSbuI/s400/figure1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfqOoTZuI/AAAAAAAAAD0/iV4HKBfSbuI/s1600-h/figure1.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s1600-h/figure4.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLfq-oTZwI/AAAAAAAAAEE/7osfPvi3lWQ/s1600-h/figure3.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;figure 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I set the complex condition "PFUNC_RACS_AVAILABLE"."P_BAVAILABLE" for end with success. I then set the end with errors with NOT "PFUNC_RACS_AVAILABLE"."P_BAVAILABLE" . Finally I set no condition for end with warnings. But when I did a validation on the condition, OWB said I had an error in the expression (figure2).  The error was PLS-00530: Illegal type used for object.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLfquoTZvI/AAAAAAAAAD8/NvmgsHs_bdc/s1600-h/figure2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202466444730918642" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLfquoTZvI/AAAAAAAAAD8/NvmgsHs_bdc/s400/figure2.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s1600-h/figure4.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLfq-oTZwI/AAAAAAAAAEE/7osfPvi3lWQ/s1600-h/figure3.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLfquoTZvI/AAAAAAAAAD8/NvmgsHs_bdc/s1600-h/figure2.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SDLfquoTZvI/AAAAAAAAAD8/NvmgsHs_bdc/s1600-h/figure2.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;figure 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now since I have been working in OWB for a while, I have learned oracle not only gives bad error messages, but incorrect ones as well. Therefore I question most messages from Oracle and decided to test the process flow to make sure.  In the figure below, the test shows the flow did work correctly. The second test I simply reversed the conditions between success and errors.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLfq-oTZwI/AAAAAAAAAEE/7osfPvi3lWQ/s1600-h/figure3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202466449025885954" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLfq-oTZwI/AAAAAAAAAEE/7osfPvi3lWQ/s400/figure3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s1600-h/figure4.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SDLfq-oTZwI/AAAAAAAAAEE/7osfPvi3lWQ/s1600-h/figure3.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;figure 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As another test I checked the results in the control center to see what was returned from the procedure. Sure enough, a Boolean value was returned. I even reversed what was return to make sure I would be getting a false value (see figure 4).&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s1600-h/figure4.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5202466453320853266" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s400/figure4.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfrOoTZxI/AAAAAAAAAEM/QJ1rYm33L1s/s1600-h/figure4.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;figure 4&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-223175241041352440?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/223175241041352440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=223175241041352440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/223175241041352440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/223175241041352440'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/error-messages-when-there-are-no-errors.html' title='Error messages when there are no errors in OWB'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://4.bp.blogspot.com/_MNvQ0L_0r8k/SDLfqOoTZuI/AAAAAAAAAD0/iV4HKBfSbuI/s72-c/figure1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-6686272611689892938</id><published>2008-05-14T07:57:00.000-07:00</published><updated>2008-05-14T07:59:48.906-07:00</updated><title type='text'>q used to define a quote delimiter for PL/SQL</title><content type='html'>I don't know why I can never remember the 'q' for a quote delimiter, so I am putting it here for myself so I can easily find it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;q'&lt;delimiter&gt;&lt;string&gt;&lt;delimiter&gt;';&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt; s1 VARCHAR2(20);&lt;br /&gt; s2 VARCHAR2(20);&lt;br /&gt; s3 VARCHAR2(20);&lt;br /&gt;BEGIN&lt;br /&gt;  s1 := q'[Isn't this cool]';&lt;br /&gt;  s2 := q'"Isn't this cool"';&lt;br /&gt;  s3 := q'|Isn't this cool|';&lt;br /&gt;&lt;br /&gt;  dbms_output.put_line(s1);&lt;br /&gt;  dbms_output.put_line(s2);&lt;br /&gt;  dbms_output.put_line(s3);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;source: http://www.psoug.org/reference/string_func.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-6686272611689892938?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/6686272611689892938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=6686272611689892938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6686272611689892938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6686272611689892938'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/q-used-to-define-quote-delimiter-for.html' title='q used to define a quote delimiter for PL/SQL'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-5410534753068770423</id><published>2008-05-12T13:05:00.001-07:00</published><updated>2008-05-12T13:12:52.999-07:00</updated><title type='text'>EVAL function</title><content type='html'>In several other languages I have written in, there is a native function that will evaluate an expression. Unfortunately, Oracle does not have this natively. From another web site I found a simple way to achieve this function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace function eval (expr varchar2)&lt;br /&gt;return varchar2&lt;br /&gt;as &lt;br /&gt;&lt;br /&gt;    ret varchar2(4000);&lt;br /&gt;&lt;br /&gt;begin &lt;br /&gt;    execute immediate 'begin :result := ' || expr || '; end;'&lt;br /&gt;        using out ret; &lt;br /&gt;    return ret;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;source: &lt;a href="http://www.adp-gmbh.ch/blog/2005/may/5.html"&gt;http://www.adp-gmbh.ch/blog/2005/may/5.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5410534753068770423?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5410534753068770423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5410534753068770423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5410534753068770423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5410534753068770423'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/eval-function.html' title='EVAL function'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-8964811252301382558</id><published>2008-05-09T07:37:00.000-07:00</published><updated>2008-05-09T08:50:30.484-07:00</updated><title type='text'>So, you want to create a zip file in oracle?</title><content type='html'>My current project has me building a generic based extraction process in Oracle using OWB (Oracle Warehouse Builder). One of the issues is when an extract is so large it really needs to be compressed before any FTP activity occurs. The good news is you can. YEAH!!!!&lt;br /&gt;The approach I took was utilizing Java, which can be used in Oracle. Being more of a C# developer, using Java is not that much of a stretch, but the debugging can be a real pain. I used SQL Developer and JDeveloper to create and Debug the code, which really gives poor error messages, if any at all. I am sure there must be a better way, and I will take some time in the future to find out how. Below is the code I used to take a path and filename and create a zip file in the same folder. There are a lot of write ups on this subject, but for me the best was located at &lt;a href="http://www.javafaq.nu/java-example-code-224.html"&gt;http://www.javafaq.nu/java-example-code-224.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You simple run this in SQLDeveloper to create a Java Class in the user schema. I place comments in the code to tell you what is happening. One of the things to really point out is the issue of parameters with an IN OUT. There is a great write up that helped me at &lt;a href="http://www.cs.umbc.edu/help/oracle8/java.815/a64686/03_pub3.htm"&gt;http://www.cs.umbc.edu/help/oracle8/java.815/a64686/03_pub3.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;create or replace and compile java source named "CreateZipFile"&lt;br /&gt;as&lt;br /&gt;import java.util.zip.ZipOutputStream;&lt;br /&gt;import java.util.zip.ZipEntry;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class CreateZipFile&lt;br /&gt;{&lt;br /&gt;public static void DoCreateZipFile( String pPathAndFileName ,String[] pErrorMessage ,int[] pReturn)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;int ReturnResults = 0;&lt;br /&gt;&lt;br /&gt;String oZipFileName ;&lt;br /&gt;byte[] buf = new byte[1024];&lt;br /&gt;&lt;br /&gt;FileInputStream FIS = null;&lt;br /&gt;ZipOutputStream ZOS = null;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;//Create the path and file name for the zip file&lt;br /&gt;oZipFileName = pPathAndFileName.substring(0,pPathAndFileName.lastIndexOf(".")) + ".zip";&lt;br /&gt;&lt;br /&gt;// build the file objects&lt;br /&gt;File oInFile = new File( pPathAndFileName);&lt;br /&gt;File oOutFile = new File( oZipFileName);&lt;br /&gt;&lt;br /&gt;//Create the output zip streams&lt;br /&gt;FileOutputStream FOS = new FileOutputStream(oOutFile);&lt;br /&gt;ZOS = new ZipOutputStream(FOS);&lt;br /&gt;&lt;br /&gt;//Set the highest level of compression&lt;br /&gt;ZOS.setLevel(9);&lt;br /&gt;&lt;br /&gt;//Create an entry for the single file we are zipping up&lt;br /&gt;ZOS.putNextEntry(new ZipEntry( oInFile.getName()));&lt;br /&gt;&lt;br /&gt;//create the infile input stream&lt;br /&gt;FIS = new FileInputStream( oInFile);&lt;br /&gt;&lt;br /&gt;//Read in chucks of the input file and insert into the output file&lt;br /&gt;int len;&lt;br /&gt;while((len = FIS.read(buf)) &gt; 0)&lt;br /&gt;{&lt;br /&gt;ZOS.write(buf, 0, len);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//close up the single entry&lt;br /&gt;ZOS.closeEntry();&lt;br /&gt;&lt;br /&gt;//Close in and out files&lt;br /&gt;FIS.close();&lt;br /&gt;ZOS.close();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;ReturnResults = 1;&lt;br /&gt;pErrorMessage[0] = e.getMessage();&lt;br /&gt;FIS.close();&lt;br /&gt;ZOS.close();&lt;br /&gt;}&lt;br /&gt;finally&lt;br /&gt;{&lt;br /&gt;return ;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that you have created and installed the Java code, congrads, you can now zip a file,… almost. First you must create a spec for this method via an Oracle Procedure or Function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace&lt;br /&gt;PROCEDURE jproc_Zipfile(pPathAndFileName in varchar2, pErrorMessage in out varchar2, pReturn in out NUMBER)&lt;br /&gt;as language&lt;br /&gt;java name 'CreateZipFile.DoCreateZipFile(java.lang.String,java.lang.String[],int[]) ';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that you have a spec for this method, congrads, you can now zip a file,… not quite yet. Next you have to give your user permission to interact with the file structure.&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;DBMS_JAVA.grant_permission('GEAP_PROJECT', 'java.io.FilePermission', 'J:\GEAP_EXTRACTS\', 'read ,write, execute, delete');&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that you have give your user permission, congrads, you can now zip a file,… finally (make sure about OS file permissions as well).&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;PPATHANDFILENAME VARCHAR2(200);&lt;br /&gt;PERRORMESSAGE VARCHAR2(200);&lt;br /&gt;PRETURN NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;PPATHANDFILENAME := 'C:\TEMP\danny2.csv';&lt;br /&gt;PERRORMESSAGE := NULL;&lt;br /&gt;PRETURN := NULL;&lt;br /&gt;&lt;br /&gt;JPROC_ZIPFILE(&lt;br /&gt;PPATHANDFILENAME =&gt; PPATHANDFILENAME,&lt;br /&gt;PERRORMESSAGE =&gt; PERRORMESSAGE,&lt;br /&gt;PRETURN =&gt; PRETURN&lt;br /&gt;);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('PERRORMESSAGE = ' PERRORMESSAGE);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('PRETURN = ' PRETURN);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are a couple of caveats to point out at this point. To the best that I can tell, you cannot add a password protection using just the Java library, it just isn’t there. From what I am readying, this has been on the request list now for eight years.&lt;br /&gt;Secondly, when I was creating this, I was in a windows environment. If you happen to test by hard coding the path such as 'C:\TEMP\danny2.csv', remember Java required double slashes, such as 'C:\\TEMP\\danny2.csv'&lt;br /&gt;&lt;br /&gt;Hopefully I was able to hit on all the issues I ran across and that this article will help you. It’s Friday, and almost Beer time.&lt;br /&gt;&lt;br /&gt;Danny&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8964811252301382558?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8964811252301382558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8964811252301382558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8964811252301382558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8964811252301382558'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/so-you-want-to-create-zip-file-in.html' title='So, you want to create a zip file in oracle?'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-2925070063283896749</id><published>2008-05-09T06:58:00.000-07:00</published><updated>2008-05-09T07:11:02.991-07:00</updated><title type='text'>EXPDP with QUERY</title><content type='html'>So I played with this for a couple of days before getting it to work for me...  When using the QUERY clause in a EXPDP/IMPDP that includes dates you should not wrap them in a TO_DATE.  I tried using a condition like below&lt;br /&gt;&lt;br /&gt;QUERY=CLM_HDR:"WHERE HDR_PD_DT &lt;= TO_DATE('04302001','MMDDYYYY')"&lt;br /&gt;&lt;br /&gt;EXPDP would give me an error stating that a right parenthesis was missing, but it was obviously not.  I did finally figure out that it wanted the dates in the default date format. So by changing it to this&lt;br /&gt;&lt;br /&gt;QUERY=CLM_HDR:"WHERE HDR_PD_DT &lt;= '04/30/2001'"&lt;br /&gt;&lt;br /&gt;It worked.  &lt;br /&gt;&lt;br /&gt;Here is my entire parameter file used for the export job I was attempting.&lt;br /&gt;&lt;font size="1" face="Courier" color="blue"&gt;&lt;br /&gt;DIRECTORY=datapump_dir&lt;br /&gt;DUMPFILE=102000-042001_CLM_ARCHIVE_%U.dmp&lt;br /&gt;LOGFILE=102000-042001_CLM_ARCHIVE.log&lt;br /&gt;CONTENT=ALL&lt;br /&gt;FILESIZE=2G&lt;br /&gt;INCLUDE=TABLE:"IN ('CLM_HDR','CLM_HDR_ADDL_EOB','CLM_HDR_ADJ_VD','CLM_HDR_COND_CD',&lt;br /&gt; 'CLM_HDR_DIAG','CLM_HDR_HCFA1500_DENTAL','CLM_HDR_HH_CERT',&lt;br /&gt; 'CLM_HDR_ICD','CLM_HDR_OCC_CD','CLM_HDR_OCC_SPN','CLM_HDR_PREV_LOCN','CLM_HDR_PYR',&lt;br /&gt; 'CLM_HDR_RA','CLM_HDR_RLTD_HIST','CLM_HDR_UB92','CLM_HDR_VALU_CD','CLM_HDR_XOVR',&lt;br /&gt; 'CLM_LI','CLM_LI_AMB','CLM_LI_ATTACH','CLM_LI_BSE_CHNG','CLM_LI_EXC','CLM_LI_TPL_BLNG')"&lt;br /&gt;QUERY=CLM_HDR:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_ADDL_EOB:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_ADJ_VD:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_COND_CD:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_DIAG:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_HCFA1500_DENTAL:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_HH_CERT:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_ICD:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_OCC_CD:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_OCC_SPN:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_PREV_LOCN:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_PYR:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_RA:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_RLTD_HIST:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_UB92:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_VALU_CD:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_HDR_XOVR:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI_AMB:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI_ATTACH:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI_BSE_CHNG:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI_EXC:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')",&lt;br /&gt; CLM_LI_TPL_BLNG:"WHERE HDR_PD_DT &lt;= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT &lt;= '04/30/2001')"&lt;br /&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-2925070063283896749?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/2925070063283896749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=2925070063283896749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2925070063283896749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2925070063283896749'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/expdp-with-query.html' title='EXPDP with QUERY'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-6956745960388628955</id><published>2008-05-08T10:07:00.000-07:00</published><updated>2008-05-08T10:22:03.860-07:00</updated><title type='text'>Java in Oracle, you need permissions!!!</title><content type='html'>One of the interesting things when you work with Java in Oracle is permissions, or better the lack of error messages telling you what permissions you need. If you have any IO actions in your Java code, you will need to give the user special permissions to do so. Oracle has one of their libraries dedicated to this need. It is called DBMS_JAVA.&lt;br /&gt;&lt;br /&gt;-- To give permissions to execute IO operations&lt;br /&gt;BEGIN&lt;br /&gt;DBMS_JAVA.grant_permission('ODS_ETL', 'java.io.FilePermission', 'C:\TEMP\20070908A\', 'read ,write, execute, delete');&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;-- To remove permissions to execute IO operations&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;DBMS_JAVA.revoke_permission('ODS_ETL', 'java.io.FilePermission', 'C:\TEMP\20070908A\', 'read ,write, execute, delete');&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--to get a list of your java permissions&lt;br /&gt;SELECT * FROM USER_JAVA_POLICY&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-6956745960388628955?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/6956745960388628955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=6956745960388628955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6956745960388628955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/6956745960388628955'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/java-in-oracle-you-need-permissions.html' title='Java in Oracle, you need permissions!!!'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-8851147943244738598</id><published>2008-05-06T09:43:00.000-07:00</published><updated>2008-05-06T11:03:45.798-07:00</updated><title type='text'>Oracle versus SYS_GUID versus OS</title><content type='html'>GUID's are one of my favorite items. It must be something about a global uniqueness at my fingertips. But while working on the RACs using the OS of LYNX I noticed the GUIDs were not being generated randomly as I have come to expect. Noticed they are just incremented by one.&lt;br /&gt;&lt;br /&gt;select SYS_GUID() FROM DUAL&lt;br /&gt;&lt;br /&gt;RACS-LYNX 64 bit&lt;br /&gt;----------------------&lt;br /&gt;4c9381b29852307ae040190a82003040&lt;br /&gt;4c9381b29853307ae040190a82003040&lt;br /&gt;4c9381b29854307ae040190a82003040&lt;br /&gt;4c9381b29855307ae040190a82003040&lt;br /&gt;4c9381b29856307ae040190a82003040&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Workflow Server-Windows (OWB)&lt;br /&gt;-----------------------------------&lt;br /&gt;ac600a534951477b9264a8bb0b3b09cb&lt;br /&gt;73b347c1ed31402cb75be64506d44327&lt;br /&gt;716533d75c4d433eb6ce7d74ca763754&lt;br /&gt;ded34a7cfab64b2a976ad183d9725be4&lt;br /&gt;fbabac678fa242949889fb9e9b4d24ca&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did run across this article to help explain the issue.&lt;br /&gt;&lt;a href="http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html"&gt;http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8851147943244738598?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8851147943244738598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8851147943244738598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8851147943244738598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8851147943244738598'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/oracle-versus-sysguid-versus-os.html' title='Oracle versus SYS_GUID versus OS'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-3717827212776886873</id><published>2008-05-06T08:54:00.001-07:00</published><updated>2008-05-06T08:58:11.171-07:00</updated><title type='text'>How to delete records where some duplication occurs</title><content type='html'>I have a table of information of beneficiaries and I need to have one record per SSN, but there were multiple records per SSN due to typos in name or different addresses.  I really didn't care which record I kept, just need one record per SSN.  This is how I did it:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;First see how many SSNs have more than one record&lt;/u&gt;&lt;br /&gt;SELECT DISTINCT&lt;br /&gt;    SSN&lt;br /&gt;FROM&lt;br /&gt;    (SELECT SSN,COUNT(*) FROM SI08005101 GROUP BY SSN HAVING COUNT(*) &gt; 1)&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Then delete the unwanted records&lt;/u&gt;&lt;br /&gt;DELETE FROM&lt;br /&gt;   &lt;span style="font-style:italic;"&gt;table_name&lt;/span&gt; A&lt;br /&gt;WHERE&lt;br /&gt;   A.rowid &gt;&lt;br /&gt;   ANY (SELECT B.rowid&lt;br /&gt;   FROM&lt;br /&gt;      &lt;span style="font-style:italic;"&gt;table_name&lt;/span&gt; B&lt;br /&gt;   WHERE&lt;br /&gt;      A.SSN = B.SSN&lt;br /&gt;   )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-3717827212776886873?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/3717827212776886873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=3717827212776886873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/3717827212776886873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/3717827212776886873'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/how-to-delete-records-where-some.html' title='How to delete records where some duplication occurs'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-4126061365580812900</id><published>2008-05-05T14:37:00.000-07:00</published><updated>2008-05-05T14:40:20.722-07:00</updated><title type='text'>When was a table created in Oracle</title><content type='html'>Jez....I thought I would never figure this out, but it is so very simple.&lt;br /&gt;&lt;br /&gt;select OBJECT_NAME&lt;br /&gt;,CREATED&lt;br /&gt;from ALL_OBJECTS&lt;br /&gt;where OWNER = 'GEAP_PROJECT'&lt;br /&gt;and OBJECT_TYPE = 'TABLE'&lt;br /&gt;and OBJECT_NAME = 'TBL_PRG_DELIVERY_TYPE'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-4126061365580812900?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/4126061365580812900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=4126061365580812900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4126061365580812900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4126061365580812900'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/when-was-table-created-in-oracle.html' title='When was a table created in Oracle'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-4646818043464640101</id><published>2008-05-03T16:27:00.000-07:00</published><updated>2008-05-03T16:28:57.782-07:00</updated><title type='text'></title><content type='html'>So I have found myself in a pickle, and you’re going to love this. So I have a function on a server called FuncThatSmells. On this server, I have a database link to RAC1. On RAC1 I have another function called TestThisCrap.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace&lt;br /&gt;FUNCTION         TestThisCrap RETURN VARCHAR2 AS&lt;br /&gt;BEGIN&lt;br /&gt;EXECUTE IMMEDIATE 'TRUNCATE TABLE ODS0_FIN.F_NOTE';&lt;br /&gt;  RETURN 'here';&lt;br /&gt;  EXCEPTION&lt;br /&gt;    WHEN OTHERS&lt;br /&gt;    THEN&lt;br /&gt;      NULL;&lt;br /&gt;       &lt;br /&gt;        RETURN 'there';&lt;br /&gt;END ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create or replace&lt;br /&gt;FUNCTION         FuncThatSmells RETURN VARCHAR2 AS&lt;br /&gt;  v_Return VARCHAR2(4000);&lt;br /&gt;BEGIN&lt;br /&gt;v_Return := &lt;a href="mailto:FUNCTEST@something.COM"&gt;FUNCTEST@something.COM&lt;/a&gt;;&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('PSQLCODE = '  v_Return);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you’re going to love this. The issue is when I run this I get a message&lt;br /&gt;&lt;br /&gt;ORA-02064: distributed operation not supported&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From the forums, &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=1977703"&gt;http://forums.oracle.com/forums/thread.jspa?messageID=1977703&lt;/a&gt;, I get this&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;ORA-02064: distributed operation not supported&lt;br /&gt;Cause: One of the following unsupported operations was attempted:&lt;br /&gt;1. array execute of a remote update with a subquery that references a dblink, or&lt;br /&gt;2. an update of a long column with bind variable and an update of a second column with a subquery that both references a dblink and a bind variable, or&lt;br /&gt;3. a commit is issued in a coordinated session from an RPC procedure call with OUT parameters or function call.&lt;br /&gt;Action: simplify remote update statement&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BAND MY HEAD ON THE KEYBOARD…………&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-4646818043464640101?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/4646818043464640101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=4646818043464640101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4646818043464640101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4646818043464640101'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/05/so-i-have-found-myself-in-pickle-and.html' title=''/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-5541855655257363747</id><published>2008-04-30T07:47:00.000-07:00</published><updated>2008-04-30T07:48:31.601-07:00</updated><title type='text'>Oracle CR and LF</title><content type='html'>Oracle uses chr(13) to denote an 0D and chr(10) to denote an 0A.  If you need to add or remove these from a column you can use these values in your query.  I needed to remove them from a notes field so I used the following&lt;br /&gt;&lt;br /&gt;replace(column,chr(10))  - this removed all 0As from the column.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5541855655257363747?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5541855655257363747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5541855655257363747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5541855655257363747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5541855655257363747'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/oracle-cr-and-lf.html' title='Oracle CR and LF'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-8567016969659130287</id><published>2008-04-29T14:16:00.000-07:00</published><updated>2008-04-29T14:17:28.120-07:00</updated><title type='text'>OWB Global Variables</title><content type='html'>NUMBER_OF_ERRORS&lt;br /&gt;NUMBER&lt;br /&gt;Number of errors reported on completion of activity's execution.&lt;br /&gt;&lt;br /&gt;NUMBER_OF_WARNINGS&lt;br /&gt;NUMBER&lt;br /&gt;Number of warnings reported on completion of activity's execution.&lt;br /&gt;&lt;br /&gt;RETURN_RESULT&lt;br /&gt;VARCHAR2(64)&lt;br /&gt;Textual representation of result. For example, 'SUCCESS', 'WARNING', 'ERROR'.&lt;br /&gt;&lt;br /&gt;RETURN_RESULT_NUMBER&lt;br /&gt;NUMBER&lt;br /&gt;Enumeration of RESULT_RESULT1 = SUCCESS2 = WARNING3 = ERROR.&lt;br /&gt;&lt;br /&gt;RETURN_CODE&lt;br /&gt;NUMBER&lt;br /&gt;Integer 0-255, specific to activity, synonymous with an Operating System return code.&lt;br /&gt;&lt;br /&gt;PARENT_AUDIT_ID&lt;br /&gt;NUMBER&lt;br /&gt;The audit id of the calling Process Flow.&lt;br /&gt;&lt;br /&gt;AUDIT_ID&lt;br /&gt;NUMBER&lt;br /&gt;The audit id of the activity.&lt;br /&gt;&lt;br /&gt;source: &lt;a href="http://download.oracle.com/docs/cd/B31080_01/doc/owb.102/b28223/concept_processflows.htm"&gt;http://download.oracle.com/docs/cd/B31080_01/doc/owb.102/b28223/concept_processflows.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8567016969659130287?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8567016969659130287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8567016969659130287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8567016969659130287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8567016969659130287'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/owb-global-variables.html' title='OWB Global Variables'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-1113114709905840412</id><published>2008-04-29T14:11:00.001-07:00</published><updated>2008-04-29T14:11:55.780-07:00</updated><title type='text'>How to kill a run away process flow</title><content type='html'>To kill a process&lt;br /&gt;&lt;br /&gt;Select Wf.Item_Key , Wf.*&lt;br /&gt;From Wf_Item_Activity_Statuses_V Wf&lt;br /&gt;Where Activity_Type_Code = 'PROCESS'&lt;br /&gt;And Activity_Status_Code != 'COMPLETE'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;wf_engine.abortProcess('ODS0', 'ETL_ODS0_2007_02_25_2007_08_27_11_33');&lt;br /&gt;end;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-1113114709905840412?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/1113114709905840412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=1113114709905840412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1113114709905840412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1113114709905840412'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/how-to-kill-run-away-process-flow.html' title='How to kill a run away process flow'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-5101036926687965289</id><published>2008-04-28T06:20:00.000-07:00</published><updated>2008-04-28T06:27:07.580-07:00</updated><title type='text'>EXPDP to multiple files</title><content type='html'>If you know that your export job will span multiple GBs and you want to split it at a known file size you can do so by using a couple of switches.&lt;br /&gt;&lt;br /&gt;%U - used in the file name to assign the file #&lt;br /&gt;FILESIZE - allows you to specify the dumpfile size&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br /&gt;expdp brian@msdss directory=datapump_dir &lt;span style="font-style:italic;"&gt;dumpfile=filename_U%.dmp&lt;/span&gt; logfile=filename.log content=ALL &lt;span style="font-style:italic;"&gt;filesize=2G&lt;/span&gt; tables=table_name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5101036926687965289?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5101036926687965289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5101036926687965289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5101036926687965289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5101036926687965289'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/expdp-to-multiple-files.html' title='EXPDP to multiple files'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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-6077706395127940748.post-1205777151704028760</id><published>2008-04-26T07:07:00.000-07:00</published><updated>2008-04-26T07:23:20.887-07:00</updated><title type='text'>What is the Least busiest RAC</title><content type='html'>While working on the latest project, I realized I needed away to know what was the least busiest RAC. Also I needed to exclude certain RACS as well as setting the maximum allowed CPU Utilization. This query is based on a call to the RAC via a database link. We needed to know not only the last stat but also the last five minutes of CPU Utilization.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT tmpA.INST_ID&lt;br /&gt;,tmpA.avgpast5mins&lt;br /&gt;,tmpB.laststat&lt;br /&gt;,tmpC.INSTANCE_NUMBER&lt;br /&gt;,tmpC.INSTANCE_NAME&lt;br /&gt;,tmpC.HOST_NAME&lt;br /&gt;,tmpD.N_MAX_CPU_PER_SERVER&lt;br /&gt;FROM    &lt;br /&gt;(select INST_ID ,AVG(VALUE) avgpast5mins   &lt;br /&gt;from &lt;a href="mailto:GV$SYSMETRIC_HISTORY@DLK_RAC"&gt;GV$SYSMETRIC_HISTORY@DLK_RAC&lt;/a&gt;   &lt;br /&gt;where metric_name='Host CPU Utilization (%)'   &lt;br /&gt;AND BEGIN_TIME &gt; sysdate - 5*(1/60)/24   &lt;br /&gt;GROUP BY INST_ID    )  tmpA&lt;br /&gt;INNER JOIN   &lt;br /&gt;(select A.INST_ID&lt;br /&gt;,a.BEGIN_TIME&lt;br /&gt;,VALUE laststat   &lt;br /&gt;from &lt;a href="mailto:GV$SYSMETRIC_HISTORY@DLK_RAC"&gt;GV$SYSMETRIC_HISTORY@DLK_RAC&lt;/a&gt;  A   &lt;br /&gt;INNER JOIN       &lt;br /&gt;(select INST_ID&lt;br /&gt;, MAX(BEGIN_TIME) BEGIN_TIME       &lt;br /&gt;from &lt;a href="mailto:GV$SYSMETRIC_HISTORY@DLK_RAC"&gt;GV$SYSMETRIC_HISTORY@DLK_RAC&lt;/a&gt;        &lt;br /&gt;where metric_name='Host CPU Utilization (%)'       &lt;br /&gt;GROUP BY INST_ID)  B   &lt;br /&gt;ON A.INST_ID = B.INST_ID   &lt;br /&gt;and A.BEGIN_TIME = B.BEGIN_TIME   &lt;br /&gt;where A.metric_name='Host CPU Utilization (%)'    ) tmpB&lt;br /&gt;ON tmpA.INST_ID = tmpB.INST_ID&lt;br /&gt;INNER JOIN &lt;a href="mailto:GV$INSTANCE@DLK_RAC"&gt;GV$INSTANCE@DLK_RAC&lt;/a&gt;  tmpC   &lt;br /&gt;ON tmpA.INST_ID = tmpC.INST_ID&lt;br /&gt;INNER JOIN GEAP_PROJECT.TBL_PRG_CONFIGURATION tmpD   &lt;br /&gt;ON 1=1&lt;br /&gt;WHERE tmpC.INSTANCE_NAME NOT IN    &lt;br /&gt;(SELECT INSTANCE_NAME&lt;br /&gt;FROM "GEAP_PROJECT"."TBL_EXTRACT_RAC_EXCLUSION")    &lt;br /&gt;AND AVGPAST5MINS &lt; N_MAX_CPU_PER_SERVER   &lt;br /&gt;AND LASTSTAT &lt; N_MAX_CPU_PER_SERVER   &lt;br /&gt;ORDER BY LASTSTAT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-1205777151704028760?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/1205777151704028760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=1205777151704028760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1205777151704028760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1205777151704028760'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/what-is-least-busiest-rac.html' title='What is the Least busiest RAC'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-2792386426055949905</id><published>2008-04-25T13:24:00.000-07:00</published><updated>2008-04-25T13:48:50.369-07:00</updated><title type='text'>OWB FOR_LOOP Activity</title><content type='html'>&lt;div&gt;&lt;p align="center"&gt;&lt;a href="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJBBAJUQYI/AAAAAAAAACs/wdOh1x9SSG8/s1600-h/FOR_LOOP_1.JPG"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;I finally figured out the FOR_LOOP activity for OWB. It is not the most documented activity, nor the most intuitive in my opinion.&lt;br /&gt;&lt;br /&gt;First, create a process flow. Add in a FOR_LOOP and a WAIT activity as seem below.. Don't forget to set the 2 transitions leaving the FOR_LOOP, one for "Loop" the other as "Exit".&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJBBAJUQYI/AAAAAAAAACs/wdOh1x9SSG8/s1600-h/FOR_LOOP_1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193284805786354050" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJBBAJUQYI/AAAAAAAAACs/wdOh1x9SSG8/s400/FOR_LOOP_1.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Now add in two variables to the process flow. I called one "INTERATOR" and the other "MAX_INTERATION". See the two following figures to see the settings for these variables.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJBnwJUQZI/AAAAAAAAAC0/AbKnICyfq1E/s1600-h/FOR_LOOP_2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193285471506284946" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJBnwJUQZI/AAAAAAAAAC0/AbKnICyfq1E/s400/FOR_LOOP_2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJBnwJUQaI/AAAAAAAAAC8/rpt8yMAFClA/s1600-h/FOR_LOOP_3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193285471506284962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJBnwJUQaI/AAAAAAAAAC8/rpt8yMAFClA/s400/FOR_LOOP_3.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;I set the wait activity to 2 seconds. Now we set the properties of the FOR_LOOP&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJgJUQbI/AAAAAAAAADE/B-OJ5Cw3F4A/s1600-h/FOR_LOOP_4.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193286051326869938" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJgJUQbI/AAAAAAAAADE/B-OJ5Cw3F4A/s400/FOR_LOOP_4.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJwJUQcI/AAAAAAAAADM/vz-dedkEH3E/s1600-h/FOR_LOOP_5.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193286055621837250" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJwJUQcI/AAAAAAAAADM/vz-dedkEH3E/s400/FOR_LOOP_5.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJwJUQdI/AAAAAAAAADU/SPGUf04047g/s1600-h/FOR_LOOP_6.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193286055621837266" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SBJCJwJUQdI/AAAAAAAAADU/SPGUf04047g/s400/FOR_LOOP_6.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJCKAJUQeI/AAAAAAAAADc/B5GPT9eL8Zk/s1600-h/FOR_LOOP_33.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193286059916804578" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJCKAJUQeI/AAAAAAAAADc/B5GPT9eL8Zk/s400/FOR_LOOP_33.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Hope this helps,&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Danny&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-2792386426055949905?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/2792386426055949905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=2792386426055949905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2792386426055949905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/2792386426055949905'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/owb-forloop-activity.html' title='OWB FOR_LOOP Activity'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://1.bp.blogspot.com/_MNvQ0L_0r8k/SBJBBAJUQYI/AAAAAAAAACs/wdOh1x9SSG8/s72-c/FOR_LOOP_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-8222377974586023317</id><published>2008-04-24T09:08:00.000-07:00</published><updated>2008-04-24T09:11:45.071-07:00</updated><title type='text'>hierarchical queries</title><content type='html'>Here is an alternate way to get a comma (or any other character) separated list of values that comes from rows in a table. This solution is based on hierarchical queries.&lt;br /&gt;&lt;br /&gt;Enjoy,&lt;br /&gt;Danny&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;QUERY SAMPLE&lt;br /&gt;&lt;br /&gt;&lt;br /&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 VC_EMAILADDESS myvalues from PERM_EXTRACTS.TBL_EMAIL_ADDRESSES&lt;br /&gt;)&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;select ltrim(sys_connect_by_path(myvalues, ','),',') catvalues&lt;br /&gt;INTO p_vc_to&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;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RESULT&lt;br /&gt;&lt;br /&gt;P_VC_TO = &lt;a href="mailto:dannnie.moodie@XXXXX.net,daniel.moody@XXXXX.com"&gt;dannnie.moodie@XXXXX.net,&lt;/a&gt;&lt;a href="mailto:dannnie.moodie@XXXXX.net,daniel.moody@XXXXX.com"&gt;dannnie.moodie&lt;/a&gt;&lt;a href="mailto:dannnie.moodie@XXXXX.net,daniel.moody@XXXXX.com"&gt;@XXXXX.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SOURCE&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quest-pipelines.com/pipelines/plsql/tips.htm#JULY"&gt;http://www.quest-pipelines.com/pipelines/plsql/tips.htm#JULY&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-8222377974586023317?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/8222377974586023317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=8222377974586023317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8222377974586023317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/8222377974586023317'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/hierarchical-queries.html' title='hierarchical queries'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-432900336491604922</id><published>2008-04-24T07:35:00.000-07:00</published><updated>2008-04-24T07:37:35.834-07:00</updated><title type='text'>V$ and GV$ views and permissions</title><content type='html'>QUOTED FROM"  &lt;a href="http://www.sapereonline.com/dictionary.html"&gt;http://www.sapereonline.com/dictionary.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"The final set of data dictionary objects are not intended for direct access by most users or commonprograms. Over 1,000 of these views (called fixed views) have names beginning with V$ or GV$. (TheV$ views provide information about the instance you are connected to while the GV$ views providea global view of all instances within a Real Application Clusters database environment.) Monitoringand tuning tools as well as SQL scripts developed by system DBAs will commonly select from theseV$ and GV$ views. Developers without access to these tools may find useful tuning information insome of these views such as V$SQLAREA and V$SYSSTAT. (Access to these views is, by default,restricted so developers will generally have to be granted the &lt;strong&gt;&lt;span style="font-size:130%;color:#cc0000;"&gt;SELECT ANY DICTIONARY&lt;/span&gt;&lt;/strong&gt; system privilegeby a DBA before they will be able to view this information.)"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Danny&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-432900336491604922?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/432900336491604922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=432900336491604922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/432900336491604922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/432900336491604922'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/v-and-gv-views-and-permissions.html' title='V$ and GV$ views and permissions'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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-6077706395127940748.post-1423831942837703358</id><published>2008-04-23T12:27:00.000-07:00</published><updated>2008-04-23T12:32:17.434-07:00</updated><title type='text'>Time zone and Header in Emails using utl_smtp</title><content type='html'>One of the problems I have had for what seems like ages is the incorrect time sent while using utl_smtp, or maybe I should say how I was using it. Everytime I would send an Email in OWB or any Stored Procedure, it would show a five hour difference (yes I live in the central time zone here in the USA). Now I knew it was something about the time zone, but for the life of me I just didn’t have the time to figure it out. Below is an example of what my Inbox said I got it versus when it was sent. (figure 1)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SA-N8AJUQWI/AAAAAAAAACc/TsPjVswMSOg/s1600-h/emailsample.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5192524957352214882" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SA-N8AJUQWI/AAAAAAAAACc/TsPjVswMSOg/s400/emailsample.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What I was saying earlier was how I was using it. When I created the message header, it looked like this.&lt;br /&gt;&lt;br /&gt;--======================================&lt;br /&gt;-- Build the envelope&lt;br /&gt;--======================================&lt;br /&gt;mesg:=&lt;br /&gt;'Date: 'TO_CHAR( v_SystemDate, 'dd Mon yy hh24:mi:ss' ) crlf&lt;br /&gt;'From: ' p_From_Alias crlf&lt;br /&gt;'Subject: '  p_Subject  crlf  'To: ';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Notice the TO_CHAR( v_SystemDate, 'dd Mon yy hh24:mi:ss' ). In the world of email, this is actually incorrect. It does not take into affects of time zones. If you use the SYSTIMESTAMP with the correct format, then your emails will show correctly. Here is an example of how to format the time&lt;br /&gt;&lt;br /&gt;TO_CHAR(SYSTIMESTAMP,'DD Mon YYYY HH24:MI:SS TZHTZM')&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Danny&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-1423831942837703358?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/1423831942837703358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=1423831942837703358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1423831942837703358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1423831942837703358'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/time-zone-and-header-in-emails-using.html' title='Time zone and Header in Emails using utl_smtp'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://2.bp.blogspot.com/_MNvQ0L_0r8k/SA-N8AJUQWI/AAAAAAAAACc/TsPjVswMSOg/s72-c/emailsample.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-5652585676006440466</id><published>2008-04-14T11:59:00.001-07:00</published><updated>2008-04-14T12:12:56.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Developer'/><title type='text'>SQL Developer version 1.2.1</title><content type='html'>I finally see the issue I was having with SQL Developer. When I compiled under the version 1.1.0.23, all I saw were warnings. From this I see the package has been compiled and ready to run.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOprlb4jCI/AAAAAAAAABk/0H0r_HOeDck/s1600-h/v1msg.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189177761909476386" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOprlb4jCI/AAAAAAAAABk/0H0r_HOeDck/s400/v1msg.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOp4lb4jDI/AAAAAAAAABs/S5Ze8FXJ3QE/s1600-h/v1com.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189177985247775794" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOp4lb4jDI/AAAAAAAAABs/S5Ze8FXJ3QE/s400/v1com.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I compiled under the latest version 1.2.1, but note the difference in the compiler log at the last line. “Only first 20 issues are reported”&lt;br /&gt;&lt;br /&gt; &lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKFb4jEI/AAAAAAAAAB0/PXWATRpknD8/s1600-h/v2msg.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189178285895486530" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKFb4jEI/AAAAAAAAAB0/PXWATRpknD8/s400/v2msg.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKVb4jHI/AAAAAAAAACM/omvl1EHSPpQ/s1600-h/v2com.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189178290190453874" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKVb4jHI/AAAAAAAAACM/omvl1EHSPpQ/s400/v2com.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After some research, I found a preference that I need to set.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKVb4jGI/AAAAAAAAACE/FxR_7-I2x3o/s1600-h/pref.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189178290190453858" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKVb4jGI/AAAAAAAAACE/FxR_7-I2x3o/s400/pref.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now see the difference in the messages and compiler log. &lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;  &lt;a href="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKlb4jII/AAAAAAAAACU/B4GSjP1eUcg/s1600-h/v2msgpref.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189178294485421186" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKlb4jII/AAAAAAAAACU/B4GSjP1eUcg/s400/v2msgpref.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKFb4jFI/AAAAAAAAAB8/mDPvAUl3JFE/s1600-h/v2compref.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5189178285895486546" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/SAOqKFb4jFI/AAAAAAAAAB8/mDPvAUl3JFE/s400/v2compref.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;I hope this sheds some light on the version differences and how it can help you.&lt;br /&gt;&lt;br /&gt;Danny&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SOURCE: &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=379327"&gt;http://forums.oracle.com/forums/thread.jspa?threadID=379327&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-5652585676006440466?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/5652585676006440466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=5652585676006440466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5652585676006440466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/5652585676006440466'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/sql-developer-version-121.html' title='SQL Developer version 1.2.1'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://4.bp.blogspot.com/_MNvQ0L_0r8k/SAOprlb4jCI/AAAAAAAAABk/0H0r_HOeDck/s72-c/v1msg.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-1755942558869860566</id><published>2008-04-02T14:01:00.000-07:00</published><updated>2008-04-02T14:21:24.444-07:00</updated><title type='text'>Getting the audit execution id</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;One of the things I have always wanted was the Audit Execution ID at runtime. To get this value I only had two ways after the process begin: query the audit log or look at the control center (see figure 1). WTF Oracle!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_MNvQ0L_0r8k/R_P3gn09wFI/AAAAAAAAABE/W7TNghqGs3o/s1600-h/controlcenter2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184759735852580946" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_MNvQ0L_0r8k/R_P3gn09wFI/AAAAAAAAABE/W7TNghqGs3o/s400/controlcenter2.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;figure1&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I finally found a way to get this value. There is a global variable I never knew existed called audit_id. Not only that, there is a public function that will give you the parent audit id as well called WB_RT_GET_PARENT_AUDIT_ID&lt;br /&gt;For an example, I have created a process flow with two output parameters and two assignments activities (see figure2). &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_MNvQ0L_0r8k/R_P3p309wGI/AAAAAAAAABM/G1LXFd3MUp8/s1600-h/processflow.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184759894766370914" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_MNvQ0L_0r8k/R_P3p309wGI/AAAAAAAAABM/G1LXFd3MUp8/s400/processflow.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;figure2&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;For the first I bind the first output parameter to the first activity and give it a value of audit_id and set the literal to false (see figure3).. For the second assignment activity, I bonded it to the second output parameter with a value of WB_RT_GET_PARENT_AUDIT_ID(audit_id) and set the literal to false.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/R_P31H09wHI/AAAAAAAAABU/Ca-Fu3_pQOQ/s1600-h/assign1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184760088039899250" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/R_P31H09wHI/AAAAAAAAABU/Ca-Fu3_pQOQ/s400/assign1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;figure 3&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;I then deployed the process flow and executed. Once the process flow had completed, I open the control center and looked the properties of the execution (see figure5). When reviewing the output parameters, you can see the audit id for the assignment activity and the parent’s audit id, which was the process flow’s .&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_MNvQ0L_0r8k/R_P4AH09wII/AAAAAAAAABc/0lGSnL6nAM8/s1600-h/controlcenter.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5184760277018460290" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_MNvQ0L_0r8k/R_P4AH09wII/AAAAAAAAABc/0lGSnL6nAM8/s400/controlcenter.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Out of my brain into the anals of blog land,&lt;/div&gt;&lt;div&gt;hope you can find use for this brain drain,&lt;/div&gt;&lt;div&gt;now where is my beer.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Danny&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-1755942558869860566?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/1755942558869860566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=1755942558869860566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1755942558869860566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/1755942558869860566'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/04/getting-audit-execution-id.html' title='Getting the audit execution id'/><author><name>Danny Moody</name><uri>http://www.blogger.com/profile/07880497285930044967</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://1.bp.blogspot.com/_MNvQ0L_0r8k/R_P3gn09wFI/AAAAAAAAABE/W7TNghqGs3o/s72-c/controlcenter2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6077706395127940748.post-4437138013128881069</id><published>2008-03-21T12:01:00.000-07:00</published><updated>2008-03-21T12:48:17.311-07:00</updated><title type='text'>Problems with Convert</title><content type='html'>I have been working to to put the Oracle convert function in the output of my files.  I have a couple problems using the OWB.  In Warehouse builder, when you try to output to a fixed length file it uses RPAD to make sure the length is as defined in your file.  The problem is no matter how you define the file it outputs it as ASCII even though I have it defined as EBCDIC.  I have all the fields already padded with EBCDIC spaces but since it is RPAD inside the generated code it addes ASCII spaces because it doesn't translate some of my EBCDIC characters.  Another problem I have is the generated code always adds a utls_file.new_line command after each output line.  I have found no where in the OWB to stop this finctionality.  So again an ASCII LF is added to everyline.  I have created a procedure to do what I want it to do but can't get the OWB to replicate.  This is the procedure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;CREATE OR REPLACE PROCEDURE "EXTRACTS"."TEST" AS&lt;br /&gt;cursor sll_cur is&lt;br /&gt;SELECT CONVERT(RPAD(BENE_ID,20,' '), 'UTFE') BENE, CONVERT(RPAD(TOTAL_BILLED_AMT,8,' '), 'UTFE') billed from MSIS_claimlt;&lt;br /&gt; sll_rec   sll_cur%ROWTYPE;&lt;br /&gt; dat_file  utl_file.file_type;&lt;br /&gt;BEGIN&lt;br /&gt;  dat_file := utl_file.fopen('JSURS_CLAIMS', 'test_convert.txt', 'w',32767);&lt;br /&gt;  utl_file.put(dat_file,'');&lt;br /&gt;  utl_file.fclose(dat_file);&lt;br /&gt;  OPEN sll_cur;&lt;br /&gt;  LOOP&lt;br /&gt;    dat_file := utl_file.fopen('JSURS_CLAIMS', 'test_convert.txt', 'A');&lt;br /&gt;    FETCH sll_cur INTO sll_rec;&lt;br /&gt;    EXIT WHEN sll_cur%NOTFOUND;&lt;br /&gt;   &lt;br /&gt;    utl_file.put(dat_file, sll_rec.BENE || sll_rec.billed);&lt;br /&gt;    --utl_file.fflush(dat_file);&lt;br /&gt;    utl_file.fclose(dat_file);&lt;br /&gt;  END LOOP;&lt;br /&gt;END TEST;&lt;br /&gt;&lt;br /&gt;You will notice I have to open the file as write to intialize the file and then open the file each time to output a line.  This is because of the potential size of one line where it is not broken by a line feed.  It keeps each line in the buffer until a new line is recieved.&lt;br /&gt;&lt;br /&gt;Eric&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/6077706395127940748-4437138013128881069?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/4437138013128881069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=4437138013128881069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4437138013128881069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/4437138013128881069'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/03/problems-with-convert.html' title='Problems with Convert'/><author><name>Eric</name><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-6077706395127940748.post-3339450556619961179</id><published>2008-03-20T08:52:00.000-07:00</published><updated>2008-03-20T08:54:35.497-07:00</updated><title type='text'>Finally a place to keep this knowledge besides Danny's head</title><content type='html'>Well we finally created a blog to keep track of all of the tips/tricks that we have found for OWB (since there really isn't much documenation).  We will start posting items here for us and others to use.  Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6077706395127940748-3339450556619961179?l=hidowb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hidowb.blogspot.com/feeds/3339450556619961179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6077706395127940748&amp;postID=3339450556619961179' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/3339450556619961179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6077706395127940748/posts/default/3339450556619961179'/><link rel='alternate' type='text/html' href='http://hidowb.blogspot.com/2008/03/finally-place-to-keep-this-knowledge.html' title='Finally a place to keep this knowledge besides Danny&apos;s head'/><author><name>Brian Burditt</name><uri>http://www.blogger.com/profile/11566650566559120173</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></feed>
