Friday, September 18, 2009
Back in Action
Thursday, February 19, 2009
Using CGI Environment Variable in APEX
begin
OWA_UTIL.PRINT_CGI_ENV;
end;
This will return:
PLSQL_GATEWAY = WebDb
GATEWAY_IVERSION = 2
SERVER_SOFTWARE = Oracle Embedded PL/SQL Gateway/11.1.0.6.0
GATEWAY_INTERFACE = CGI/1.1
SERVER_PORT = 8080
SERVER_NAME = XDB HTTP Server
REQUEST_METHOD = POST
PATH_INFO = /wwv_flow.show
SCRIPT_NAME = /apex
REMOTE_HOST =
REMOTE_ADDR = 10.26.0.97
SERVER_PROTOCOL = HTTP/1.1
REQUEST_PROTOCOL = HTTP
REMOTE_USER = ANONYMOUS
ORACLE_SSO_USER =
HTTP_CONTENT_LENGTH = 285
HTTP_CONTENT_TYPE = application/x-www-form-urlencoded; charset=UTF-8
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)
HTTP_HOST = sparrow.hidinc.com:8080
HTTP_ACCEPT = text/html
HTTP_ACCEPT_ENCODING = gzip
HTTP_ACCEPT_LANGUAGE = en-us
HTTP_ACCEPT_CHARSET = ISO-8859-1
HTTP_REFERER = http://sparrow.hidinc.com:8080/apex/f?p=4500:1003:3536261107957055::NO:::
WEB_AUTHENT_PREFIX =
DAD_NAME = apex
DOC_ACCESS_PATH = docs
DOCUMENT_TABLE = wwv_flow_file_objects$
PATH_ALIAS =
REQUEST_CHARSET = AL32UTF8
REQUEST_IANA_CHARSET = UTF-8
SCRIPT_PREFIX =
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
This can now be used with owa_util.get_cgi_env() for validations on these items.
Wednesday, February 18, 2009
Issues with APEX/AJAX/Extjs
TOPICS
APEX
AJAX
Application Process / On Demand
Ext.tree.AsyncTreeNode
Ext.tree.TreeLoader
Ext.tree.TreePanel
Application Process / On Demand
---------------------------------------DECLARE v_Return CLOB; l_nStartPostion NUMBER(22,0) := 1; l_nEndPostion NUMBER(22,0); l_vcBuffer VARCHAR2(32767); l_TotalLength NUMBER(22,0);
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;
--Get JSON string --[{"text":"My folder","id":"10","cls":".folder","leaf":false},{"text":"another folder","id":"11","cls":".folder","leaf":false}]
v_Return:= PKG_REPORT_REPOSITORY.PFUNC_GET_NODE_CHILDREN(wwv_flow.g_x01);
--What is the total length of the JSON string l_TotalLength := dbms_lob.getlength(v_Return); --Set the end postion l_nEndPostion:= 30000;
--cycle until we are at the end WHILE l_nEndPostion <= 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);
END;
Ext.tree.TreeLoader------------------------------
// 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
// extendExt.extend(Ext.hid.TreeLoader, Ext.tree.TreeLoader,{ nodeParamName:"node",
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]),"&");}}A.push(this.nodeParamName + "=",encodeURIComponent(D.id));return A.join("");}
}); // end of extend // end of file
Ext application
----------------------------.
.
.
var u = (window.location.href.indexOf("?") > 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 + '&p_flow_step_id=0&p_instance=' + Ext.getDom('pInstance').value + '&p_request=APPLICATION_PROCESS=GET_NODE_CHILDREN'; myTreeLoader = new Ext.hid.TreeLoader( {dataUrl:baseURL,nodeParamName: 'x01'} );
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});
Thursday, October 16, 2008
Under the OWB engine
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.
---================================================================
--- To get the project ID
-------------------------------------------------------------------
select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where S2_1 = 'CMPWBProject'
and S2_3 = 'DSS_' 'FIN'
---RESULT---------------------------------------------------------
8184190
---================================================================
---================================================================
--- To get the install oracle folder in the project
--------------------------------------------------------------------------------
select * --I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
WHERE R_19 = 8184190
and S2_1 = 'CMPWBDataWarehouse'
and S1_8 = 'Production'
---RESULT---------------------------------------------------------
8344258
---NOTE-----------------------------------------------------------
--- Other options
--- CMPWBDataWarehouse
--- CMPProcessInstalledModule process flow modules
--- CMPWBFileInstalledModule flat file folder
---================================================================
---================================================================
--- To get the expected files list
-------------------------------------------------------------------
select S3_4
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258
and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'
---RESULT---------------------------------------------------------
f_recip_alt_id.dat
f_clm_hdr.dat
f_hdr.dat
f_note.dat
f_pybl.dat
f_pybl_recv.dat
f_recv.dat
---================================================================
---================================================================
--- To get the filename and stored location name
-------------------------------------------------------------------
SELECT a.S3_4,b.S3_4 FROM
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'
) A
INNER JOIN
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILELOC'
) B
ON A.R_11 = b.R_11
---RESULT---------------------------------------------------------
f_recip_alt_id.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_clm_hdr.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_hdr.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_note.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_pybl.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_pybl_recv.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
f_recv.dat 60383E500D6341A6AF8DFD4A03B78F06:DSS_FIN_DATA_SOURCE
---================================================================
---================================================================
--- To get the filename and directory
-------------------------------------------------------------------
SELECT a.S3_4, E.S3_4
FROM
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILENAME'
) A
INNER JOIN
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPINGS.SQLLOADERSTEP.DATAFILE.IDENTIFICATION.DATAFILELOC'
) B
ON A.R_11 = b.R_11
INNER JOIN
"OWB_REPOSOWNER".CMPFCOCLASSES C
ON C.S2_5 ':' C.S2_3 = B.S3_4
INNER JOIN "OWB_REPOSOWNER"."CMPSCOPRPCLASSES" E
ON E.R_15 = C.I_1
---RESULT---------------------------------------------------------
f_recip_alt_id.dat J:\FIN\
f_clm_hdr.dat J:\FIN\
f_hdr.dat J:\FIN\
f_note.dat J:\FIN\
f_pybl.dat J:\FIN\
f_pybl_recv.dat J:\FIN\
f_recv.dat J:\FIN\
---================================================================
---================================================================
--- To get the database connection details. This is good to verify that the map
--- will run into the correct user schema and the correct oracle instance.
-------------------------------------------------------------------
select A "table_name"
, MAX(DECODE(B,'CMPLocation_Host',C)) as "HOST"
, MAX(DECODE(B,'CMPLocation_ConnectAsUser', C)) as "USER_SCHEMA"
, MAX(DECODE(B,'CMPLocation_ServiceName',C)) as "SERVICE_NAME"
from
(
SELECT a.S3_4 a,E.S4_1 b, E.S3_4 c
FROM
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = 'DATAENTITY.PARENT_OBJECT_NAME'
) A
INNER JOIN
(select *
FROM "OWB_REPOSOWNER"."CMPSCOPRPCLASSES"
where R_11 IN
(select I_1
FROM "OWB_REPOSOWNER"."CMPFCOCLASSES"
where r_17 = 8344258 and s2_1 = 'CMPMap'
)
and S4_1 = '8i.MAPPING.ENTITY.LOCATION'
) B
ON A.R_11 = b.R_11
INNER JOIN
"OWB_REPOSOWNER".CMPFCOCLASSES C
ON C.S2_5 ':' C.S2_3 = B.S3_4
INNER JOIN "OWB_REPOSOWNER"."CMPSCOPRPCLASSES" E
ON E.R_15 = C.I_1
) g
group by A
order by A
---RESULT---------------------------------------------------------
table_name HOST USER_SCHEMA SERVICE_NAME
-------------- ------- -------------- ----------------
FIN_BEN_ALT_ID raca ODS0_FIN dss.jp.db.com
FIN_CLM_HDR raca ODS1_FIN dss.jp.db.com
FIN_HDR raca ODS1_NET dss.jp.db.com
FIN_NOTE raca ODS1_REC dss.JP.db.COM
FIN_PYBL racd ODS2 dss.jp.db.com
FIN_PYBL_RECV racd ODS2 dss.jp.db.com
FIN_RECV racd ODS2 dss.jp.db.com
---================================================================
Friday, July 11, 2008
Job Monitor
Query for the audit Log file
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.
SELECT * FROM WB_RT_AUDIT_FILES WHERE AUDIT_EXECUTION_ID = 2895504
SQL*Loader: Release 10.2.0.1.0 - Production on Thu Jul 10 13:08:27 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Control File: J:\XXXXXXXXXX.ctlCharacter Set WE8MSWIN1252 specified for all input.
Data File: J:\XXXXXXXXXX.txt Bad File: c:\XXXXXXXXXX.bad Discard File: c:\XXXXXXXXXX.dsc (Allow 0 discards)
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
.
.
.
Cheers
Danny
Monday, July 7, 2008
Oracle IIF
One of the native functions I miss a lot from SQL Server is the IIF. (http://msdn.microsoft.com/en-us/library/27ydhh0d(VS.71).aspx). So I made one for myself for Oracle. Simple but very useful.
Enjoy,
Danny
DECLARE
v_Return VARCHAR2(200);
BEGIN
v_Return := IIF(
1=2,
'YES',
'NO'
);
DBMS_OUTPUT.PUT_LINE('v_Return = ' v_Return);
END;
create or replace
FUNCTION ODS_ETL.IIF
( param1 IN BOOLEAN
, param2 IN VARCHAR2
, param3 IN VARCHAR2
) RETURN VARCHAR2 AS
BEGIN
IF param1
THEN
RETURN param2;
ELSE
RETURN param3;
END IF;
END IIF;
Friday, May 30, 2008
What is the last day of last month and more
select TRUNC(ADD_MONTHS(SYSDATE, - 1), 'MONTH')FROM DUAL
To get the last day of the month, use this:
select LAST_DAY(ADD_MONTHS(SYSDATE, - 1))FROM DUAL
Tuesday, May 20, 2008
One of my main irks with Oracle Warehouse Builder (OWB)
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.
figure 2
figure 3
Validation of the map was ok. I then deployed the map but that failed. The reason?
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.
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.
Error messages when there are no errors in OWB
figure 1
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.
figure 2
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.
figure 3
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).
figure 4
Wednesday, May 14, 2008
q used to define a quote delimiter for PL/SQL
q'
DECLARE
s1 VARCHAR2(20);
s2 VARCHAR2(20);
s3 VARCHAR2(20);
BEGIN
s1 := q'[Isn't this cool]';
s2 := q'"Isn't this cool"';
s3 := q'|Isn't this cool|';
dbms_output.put_line(s1);
dbms_output.put_line(s2);
dbms_output.put_line(s3);
END;
source: http://www.psoug.org/reference/string_func.html
Monday, May 12, 2008
EVAL function
create or replace function eval (expr varchar2)
return varchar2
as
ret varchar2(4000);
begin
execute immediate 'begin :result := ' || expr || '; end;'
using out ret;
return ret;
end;
source: http://www.adp-gmbh.ch/blog/2005/may/5.html
Friday, May 9, 2008
So, you want to create a zip file in oracle?
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 http://www.javafaq.nu/java-example-code-224.html
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 http://www.cs.umbc.edu/help/oracle8/java.815/a64686/03_pub3.htm
create or replace and compile java source named "CreateZipFile"
as
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.*;
public class CreateZipFile
{
public static void DoCreateZipFile( String pPathAndFileName ,String[] pErrorMessage ,int[] pReturn)
{
int ReturnResults = 0;
String oZipFileName ;
byte[] buf = new byte[1024];
FileInputStream FIS = null;
ZipOutputStream ZOS = null;
try
{
//Create the path and file name for the zip file
oZipFileName = pPathAndFileName.substring(0,pPathAndFileName.lastIndexOf(".")) + ".zip";
// build the file objects
File oInFile = new File( pPathAndFileName);
File oOutFile = new File( oZipFileName);
//Create the output zip streams
FileOutputStream FOS = new FileOutputStream(oOutFile);
ZOS = new ZipOutputStream(FOS);
//Set the highest level of compression
ZOS.setLevel(9);
//Create an entry for the single file we are zipping up
ZOS.putNextEntry(new ZipEntry( oInFile.getName()));
//create the infile input stream
FIS = new FileInputStream( oInFile);
//Read in chucks of the input file and insert into the output file
int len;
while((len = FIS.read(buf)) > 0)
{
ZOS.write(buf, 0, len);
}
//close up the single entry
ZOS.closeEntry();
//Close in and out files
FIS.close();
ZOS.close();
}
catch (Exception e)
{
ReturnResults = 1;
pErrorMessage[0] = e.getMessage();
FIS.close();
ZOS.close();
}
finally
{
return ;
}
}
}
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.
create or replace
PROCEDURE jproc_Zipfile(pPathAndFileName in varchar2, pErrorMessage in out varchar2, pReturn in out NUMBER)
as language
java name 'CreateZipFile.DoCreateZipFile(java.lang.String,java.lang.String[],int[]) ';
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.
BEGIN
DBMS_JAVA.grant_permission('GEAP_PROJECT', 'java.io.FilePermission', 'J:\GEAP_EXTRACTS\', 'read ,write, execute, delete');
END;
Now that you have give your user permission, congrads, you can now zip a file,… finally (make sure about OS file permissions as well).
DECLARE
PPATHANDFILENAME VARCHAR2(200);
PERRORMESSAGE VARCHAR2(200);
PRETURN NUMBER;
BEGIN
PPATHANDFILENAME := 'C:\TEMP\danny2.csv';
PERRORMESSAGE := NULL;
PRETURN := NULL;
JPROC_ZIPFILE(
PPATHANDFILENAME => PPATHANDFILENAME,
PERRORMESSAGE => PERRORMESSAGE,
PRETURN => PRETURN
);
DBMS_OUTPUT.PUT_LINE('PERRORMESSAGE = ' PERRORMESSAGE);
DBMS_OUTPUT.PUT_LINE('PRETURN = ' PRETURN);
END;
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.
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'
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.
Danny
EXPDP with QUERY
QUERY=CLM_HDR:"WHERE HDR_PD_DT <= TO_DATE('04302001','MMDDYYYY')"
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
QUERY=CLM_HDR:"WHERE HDR_PD_DT <= '04/30/2001'"
It worked.
Here is my entire parameter file used for the export job I was attempting.
DIRECTORY=datapump_dir
DUMPFILE=102000-042001_CLM_ARCHIVE_%U.dmp
LOGFILE=102000-042001_CLM_ARCHIVE.log
CONTENT=ALL
FILESIZE=2G
INCLUDE=TABLE:"IN ('CLM_HDR','CLM_HDR_ADDL_EOB','CLM_HDR_ADJ_VD','CLM_HDR_COND_CD',
'CLM_HDR_DIAG','CLM_HDR_HCFA1500_DENTAL','CLM_HDR_HH_CERT',
'CLM_HDR_ICD','CLM_HDR_OCC_CD','CLM_HDR_OCC_SPN','CLM_HDR_PREV_LOCN','CLM_HDR_PYR',
'CLM_HDR_RA','CLM_HDR_RLTD_HIST','CLM_HDR_UB92','CLM_HDR_VALU_CD','CLM_HDR_XOVR',
'CLM_LI','CLM_LI_AMB','CLM_LI_ATTACH','CLM_LI_BSE_CHNG','CLM_LI_EXC','CLM_LI_TPL_BLNG')"
QUERY=CLM_HDR:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_ADDL_EOB:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_ADJ_VD:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_COND_CD:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_DIAG:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_HCFA1500_DENTAL:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_HH_CERT:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_ICD:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_OCC_CD:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_OCC_SPN:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_PREV_LOCN:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_PYR:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_RA:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_RLTD_HIST:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_UB92:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_VALU_CD:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_HDR_XOVR:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI_AMB:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI_ATTACH:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI_BSE_CHNG:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI_EXC:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')",
CLM_LI_TPL_BLNG:"WHERE HDR_PD_DT <= '04/30/2001' AND TCN_NUM NOT IN (SELECT TCN_NUM FROM ODS2.LIFETIME_CLMS WHERE HDR_PD_DT <= '04/30/2001')"
Thursday, May 8, 2008
Java in Oracle, you need permissions!!!
-- To give permissions to execute IO operations
BEGIN
DBMS_JAVA.grant_permission('ODS_ETL', 'java.io.FilePermission', 'C:\TEMP\20070908A\', 'read ,write, execute, delete');
END;
-- To remove permissions to execute IO operations
BEGIN
DBMS_JAVA.revoke_permission('ODS_ETL', 'java.io.FilePermission', 'C:\TEMP\20070908A\', 'read ,write, execute, delete');
END;
--to get a list of your java permissions
SELECT * FROM USER_JAVA_POLICY
Tuesday, May 6, 2008
Oracle versus SYS_GUID versus OS
select SYS_GUID() FROM DUAL
RACS-LYNX 64 bit
----------------------
4c9381b29852307ae040190a82003040
4c9381b29853307ae040190a82003040
4c9381b29854307ae040190a82003040
4c9381b29855307ae040190a82003040
4c9381b29856307ae040190a82003040
Workflow Server-Windows (OWB)
-----------------------------------
ac600a534951477b9264a8bb0b3b09cb
73b347c1ed31402cb75be64506d44327
716533d75c4d433eb6ce7d74ca763754
ded34a7cfab64b2a976ad183d9725be4
fbabac678fa242949889fb9e9b4d24ca
I did run across this article to help explain the issue.
http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html
How to delete records where some duplication occurs
First see how many SSNs have more than one record
SELECT DISTINCT
SSN
FROM
(SELECT SSN,COUNT(*) FROM SI08005101 GROUP BY SSN HAVING COUNT(*) > 1)
Then delete the unwanted records
DELETE FROM
table_name A
WHERE
A.rowid >
ANY (SELECT B.rowid
FROM
table_name B
WHERE
A.SSN = B.SSN
)
Monday, May 5, 2008
When was a table created in Oracle
select OBJECT_NAME
,CREATED
from ALL_OBJECTS
where OWNER = 'GEAP_PROJECT'
and OBJECT_TYPE = 'TABLE'
and OBJECT_NAME = 'TBL_PRG_DELIVERY_TYPE'
Saturday, May 3, 2008
create or replace
FUNCTION TestThisCrap RETURN VARCHAR2 AS
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE ODS0_FIN.F_NOTE';
RETURN 'here';
EXCEPTION
WHEN OTHERS
THEN
NULL;
RETURN 'there';
END ;
create or replace
FUNCTION FuncThatSmells RETURN VARCHAR2 AS
v_Return VARCHAR2(4000);
BEGIN
v_Return := FUNCTEST@something.COM;
DBMS_OUTPUT.PUT_LINE('PSQLCODE = ' v_Return);
END;
Now you’re going to love this. The issue is when I run this I get a message
ORA-02064: distributed operation not supported
From the forums, http://forums.oracle.com/forums/thread.jspa?messageID=1977703, I get this
.
.
.
ORA-02064: distributed operation not supported
Cause: One of the following unsupported operations was attempted:
1. array execute of a remote update with a subquery that references a dblink, or
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
3. a commit is issued in a coordinated session from an RPC procedure call with OUT parameters or function call.
Action: simplify remote update statement
.
.
.
BAND MY HEAD ON THE KEYBOARD…………