2016年12月7日星期三
PLSQL - Cursor Liked For Loop Example
BEGIN
FOR RESULT IN (
SELECT C.CASEKEY AS THECASEKEY, CE.CASEEVENTKEY AS THECASEEVENTKEY
FROM CASES C
JOIN CASEEVENT CE ON C.CASEKEY = CE.CASEKEY
)
LOOP
UPDATE CASES
SET CURRENTCASEEVENTKEY = RESULT.THECASEEVENTKEY
WHERE CASEKEY = RESULT.THECASEKEY;
END LOOP;
END;
PLSQL - Drop Table if Exist
DECLARE
C INT;
BEGIN
SELECT COUNT(*) INTO C FROM USER_TABLES WHERE TABLE_NAME = UPPER('TEMPTABLE');
IF C=1 THEN
EXECUTE IMMEDIATE 'DROP TABLE TEMPTABLE';
END IF;
END;
C INT;
BEGIN
SELECT COUNT(*) INTO C FROM USER_TABLES WHERE TABLE_NAME = UPPER('TEMPTABLE');
IF C=1 THEN
EXECUTE IMMEDIATE 'DROP TABLE TEMPTABLE';
END IF;
END;
PLSQL - SQLPlus Patch File Template
ACCEPT LOG_DIR PROMPT 'Please enter the full path to the log files (default C:\Temp\Log) : ' DEFAULT C:\Temp\Log
SPOOL &&LOG_DIR\MyProject_MyIssue_MyDate.log
/*
Author :
Date :
Client :
Comments:
*/
Prompt #############################################################
Prompt Connection Details
Prompt #############################################################
set termout off
define _USER
define _CONNECT_IDENTIFIER
define _PRIVILEGE
define _O_VERSION
define _DATE
set termout on
Prompt #############################################################
Prompt
Prompt #############################################################
SET TIMING ON
------------------Script Start--------------------------
select settingvalue ENVIRONMENT from globalsetting where settingkey = 94;
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.1:
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.2:
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.3
------------------Script End-----------------------------
Prompt #############################################################
Prompt #############################################################
prompt
SPOOL OFF
HOST &&LOG_DIR\MyProject_MyIssue_MyDate.log
SPOOL &&LOG_DIR\MyProject_MyIssue_MyDate.log
/*
Author :
Date :
Client :
Comments:
*/
Prompt #############################################################
Prompt Connection Details
Prompt #############################################################
set termout off
define _USER
define _CONNECT_IDENTIFIER
define _PRIVILEGE
define _O_VERSION
define _DATE
set termout on
Prompt #############################################################
Prompt
Prompt #############################################################
SET TIMING ON
------------------Script Start--------------------------
select settingvalue ENVIRONMENT from globalsetting where settingkey = 94;
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.1:
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.2:
PROMPT
PROMPT
Prompt #############################################################
PROMPT 1.3
------------------Script End-----------------------------
Prompt #############################################################
Prompt #############################################################
prompt
SPOOL OFF
HOST &&LOG_DIR\MyProject_MyIssue_MyDate.log
2016年11月8日星期二
PLSQL - For Loop Example
CREATE TABLE TEMPTABLE
AS
SELECT ROW_NUMBER() OVER (ORDER BY L.IPCONTACTTYPEID) AS ID, R.RECORDID AS RECORDID, L.IPCONTACTTYPEID AS IPCONTACTTYPEID, I.LONGNAME AS NAME, GM.GLOBALMEDIAKEY AS GMKEY
FROM SRC_RECORD R
JOIN SRC_CONFLICT C ON R.RECORDID = C.CONFLICTID
JOIN SRC_LNKIPCONTACT L ON R.RECORDID = L.RECORDID
JOIN SRC_USERINFORMATION I ON L.USERID = I.USERID
JOIN GLOBALMEDIA GM ON GM.PARENTKEY = R.CASEKEY
JOIN TABLEMEDIATYPE TMT ON TMT.MEDIATYPEKEY = GM.MEDIATYPEKEY
WHERE TMT.MEDIATYPEDESCRIPTION = 'Additional Notes'
AND L.IPCONTACTTYPEID IN ( 65, 66, 57, 107 )
ORDER BY 1;
DECLARE IFINAL NUMBER;
BEGIN
SELECT MAX(ID) INTO IFINAL FROM TEMPTABLE;
FOR ICOUNT IN 1..IFINAL
LOOP
UPDATE GLOBALMEDIALOB R
SET R.LONGVALUE = ( SELECT C2B( BLOB_TO_CLOB( R.LONGVALUE ) ||
TO_CLOB ( CHR(13)||CHR(10)||
CASE TT.IPCONTACTTYPEID
WHEN 65 THEN 'Searcher - ' || TT.NAME
WHEN 66 THEN 'Third Party Contact - ' || TT.NAME
WHEN 57 THEN 'Law Firm Contact - ' || TT.NAME
WHEN 107 THEN 'Patent Lead - ' || TT.NAME
END ))
FROM TEMPTABLE TT WHERE R.GLOBALMEDIAKEY = TT.GMKEY AND TT.ID = ICOUNT)
WHERE R.GLOBALMEDIAKEY = ( SELECT GMKEY FROM TEMPTABLE WHERE ID = ICOUNT );
END LOOP;
END;
COMMIT;
DROP TABLE TEMPTABLE;
AS
SELECT ROW_NUMBER() OVER (ORDER BY L.IPCONTACTTYPEID) AS ID, R.RECORDID AS RECORDID, L.IPCONTACTTYPEID AS IPCONTACTTYPEID, I.LONGNAME AS NAME, GM.GLOBALMEDIAKEY AS GMKEY
FROM SRC_RECORD R
JOIN SRC_CONFLICT C ON R.RECORDID = C.CONFLICTID
JOIN SRC_LNKIPCONTACT L ON R.RECORDID = L.RECORDID
JOIN SRC_USERINFORMATION I ON L.USERID = I.USERID
JOIN GLOBALMEDIA GM ON GM.PARENTKEY = R.CASEKEY
JOIN TABLEMEDIATYPE TMT ON TMT.MEDIATYPEKEY = GM.MEDIATYPEKEY
WHERE TMT.MEDIATYPEDESCRIPTION = 'Additional Notes'
AND L.IPCONTACTTYPEID IN ( 65, 66, 57, 107 )
ORDER BY 1;
DECLARE IFINAL NUMBER;
BEGIN
SELECT MAX(ID) INTO IFINAL FROM TEMPTABLE;
FOR ICOUNT IN 1..IFINAL
LOOP
UPDATE GLOBALMEDIALOB R
SET R.LONGVALUE = ( SELECT C2B( BLOB_TO_CLOB( R.LONGVALUE ) ||
TO_CLOB ( CHR(13)||CHR(10)||
CASE TT.IPCONTACTTYPEID
WHEN 65 THEN 'Searcher - ' || TT.NAME
WHEN 66 THEN 'Third Party Contact - ' || TT.NAME
WHEN 57 THEN 'Law Firm Contact - ' || TT.NAME
WHEN 107 THEN 'Patent Lead - ' || TT.NAME
END ))
FROM TEMPTABLE TT WHERE R.GLOBALMEDIAKEY = TT.GMKEY AND TT.ID = ICOUNT)
WHERE R.GLOBALMEDIAKEY = ( SELECT GMKEY FROM TEMPTABLE WHERE ID = ICOUNT );
END LOOP;
END;
COMMIT;
DROP TABLE TEMPTABLE;
2016年10月26日星期三
Oracle - blob_to_clob
create or replace FUNCTION blob_to_clob (blob_in IN BLOB)
RETURN CLOB
AS
v_clob CLOB;
v_varchar VARCHAR2(32767);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 32767;
BEGIN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
LOOP
v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
v_start := v_start + v_buffer;
END LOOP;
RETURN v_clob;
END blob_to_clob;
RETURN CLOB
AS
v_clob CLOB;
v_varchar VARCHAR2(32767);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 32767;
BEGIN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
LOOP
v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
v_start := v_start + v_buffer;
END LOOP;
RETURN v_clob;
END blob_to_clob;
Oracle - c2b
create or replace FUNCTION c2b( c IN CLOB ) RETURN BLOB
IS
position PLS_INTEGER := 1;
buffer RAW( 32767 );
res BLOB;
lob_len PLS_INTEGER := DBMS_LOB.getLength( c );
BEGIN
DBMS_LOB.createTemporary( res, TRUE );
DBMS_LOB.OPEN( res, DBMS_LOB.LOB_ReadWrite );
LOOP
buffer := UTL_RAW.cast_to_raw( DBMS_LOB.SUBSTR( c, 10000, position ) );
IF UTL_RAW.LENGTH( buffer ) > 0 THEN
DBMS_LOB.writeAppend( res, UTL_RAW.LENGTH( buffer ), buffer );
END IF;
position := position + 10000;
EXIT WHEN position > lob_len;
END LOOP;
RETURN res;
END c2b;
IS
position PLS_INTEGER := 1;
buffer RAW( 32767 );
res BLOB;
lob_len PLS_INTEGER := DBMS_LOB.getLength( c );
BEGIN
DBMS_LOB.createTemporary( res, TRUE );
DBMS_LOB.OPEN( res, DBMS_LOB.LOB_ReadWrite );
LOOP
buffer := UTL_RAW.cast_to_raw( DBMS_LOB.SUBSTR( c, 10000, position ) );
IF UTL_RAW.LENGTH( buffer ) > 0 THEN
DBMS_LOB.writeAppend( res, UTL_RAW.LENGTH( buffer ), buffer );
END IF;
position := position + 10000;
EXIT WHEN position > lob_len;
END LOOP;
RETURN res;
END c2b;
2016年7月29日星期五
Cumulative No. of Patents Filed and Grant per Year (1 Apr)
SELECT Y1.Myyear||'/'||SUBSTR(TO_NUMBER(Y1.MYYEAR)+1,1) AS YEAR, SUM(Y2.FILCOUNT) AS "Cumulative Filing Case", SUM(Y2.GRTCOUNT) As "Cumulative Granted Case"
FROM
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3))
UNION
SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X1
GROUP BY MYYEAR ORDER BY 1 ) Y1
JOIN
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3))
UNION
SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X2
GROUP BY MYYEAR ORDER BY 1 ) Y2 ON Y1.ID >= Y2.ID
GROUP BY Y1.ID, Y1.Myyear
ORDER BY 1
FROM
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3))
UNION
SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X1
GROUP BY MYYEAR ORDER BY 1 ) Y1
JOIN
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3))
UNION
SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X2
GROUP BY MYYEAR ORDER BY 1 ) Y2 ON Y1.ID >= Y2.ID
GROUP BY Y1.ID, Y1.Myyear
ORDER BY 1
Cumulative No. of Patents Filed and Grant per Year (1 July)
SELECT Y1.Myyear||'/'||SUBSTR(TO_NUMBER(Y1.MYYEAR)+1,1) AS YEAR, SUM(Y2.FILCOUNT) AS "Cumulative Filing Case", SUM(Y2.GRTCOUNT) As "Cumulative Granted Case"
FROM
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6))
UNION
SELECT extract (year from add_months(GRT.eventdate, -6)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -6)) ) X1
GROUP BY MYYEAR ORDER BY 1 ) Y1
JOIN
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6))
UNION
SELECT extract (year from add_months(GRT.eventdate, -6)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -6)) ) X2
GROUP BY MYYEAR ORDER BY 1 ) Y2 ON Y1.ID >= Y2.ID
GROUP BY Y1.ID, Y1.Myyear
ORDER BY 1
FROM
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6))
UNION
SELECT extract (year from add_months(GRT.eventdate, -6)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -6)) ) X1
GROUP BY MYYEAR ORDER BY 1 ) Y1
JOIN
( SELECT Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
FROM ( SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -6))
UNION
SELECT extract (year from add_months(GRT.eventdate, -6)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1
GROUP BY extract (year from add_months(GRT.eventdate, -6)) ) X2
GROUP BY MYYEAR ORDER BY 1 ) Y2 ON Y1.ID >= Y2.ID
GROUP BY Y1.ID, Y1.Myyear
ORDER BY 1
2016年6月17日星期五
Create Dummy Big File
File Size :
1M = 1024 x 1024 = 1048576
10M = 1024 x 1024 x 10 = 10485760
fsutil file createnew BigFile10M.txt 10485760
2016年6月7日星期二
Gen PCT-National Case Details
-- PCT Details
SELECT P.CASEREFERENCE AS PCTCase, C.CASEREFERENCE AS NationalCase, PCT.EVENTNUMBER AS "PCT filing number", PCT.EVENTDATE AS "PCT filing date",
FLG.EVENTNUMBER AS "Filing Number", FLG.EVENTDATE AS "Filing Date",
DEPL.EVENTNUMBER AS "Local filing Number", DEPL.EVENTDATE AS "Local filing Date",
DES.EVENTNUMBER AS "Designated Number", DES.EVENTDATE AS "Designated Date"
FROM CASES P
LEFT JOIN CEIRELATION CR ON CR.PARENTKEY = P.CASEKEY AND CR.RELATIONTYPE = 105
LEFT JOIN CASEEVENT PCT ON P.CASEKEY = PCT.CASEKEY AND PCT.EVENTKEY = 10
LEFT JOIN CASES C ON CR.CASEKEY = C.CASEKEY
LEFT JOIN CASEEVENT FLG ON FLG.CASEKEY = C.CASEKEY AND FLG.EVENTKEY = 10
LEFT JOIN CASEEVENT DEPL ON DEPL.CASEKEY = C.CASEKEY AND DEPL.EVENTKEY = 110
LEFT JOIN CASEEVENT DES ON DES.CASEKEY = C.CASEKEY AND DES.EVENTKEY = 103
WHERE P.CASEREFERENCE LIKE '%WO%'
ORDER BY 1,2
SELECT P.CASEREFERENCE AS PCTCase, C.CASEREFERENCE AS NationalCase, PCT.EVENTNUMBER AS "PCT filing number", PCT.EVENTDATE AS "PCT filing date",
FLG.EVENTNUMBER AS "Filing Number", FLG.EVENTDATE AS "Filing Date",
DEPL.EVENTNUMBER AS "Local filing Number", DEPL.EVENTDATE AS "Local filing Date",
DES.EVENTNUMBER AS "Designated Number", DES.EVENTDATE AS "Designated Date"
FROM CASES P
LEFT JOIN CEIRELATION CR ON CR.PARENTKEY = P.CASEKEY AND CR.RELATIONTYPE = 105
LEFT JOIN CASEEVENT PCT ON P.CASEKEY = PCT.CASEKEY AND PCT.EVENTKEY = 10
LEFT JOIN CASES C ON CR.CASEKEY = C.CASEKEY
LEFT JOIN CASEEVENT FLG ON FLG.CASEKEY = C.CASEKEY AND FLG.EVENTKEY = 10
LEFT JOIN CASEEVENT DEPL ON DEPL.CASEKEY = C.CASEKEY AND DEPL.EVENTKEY = 110
LEFT JOIN CASEEVENT DES ON DES.CASEKEY = C.CASEKEY AND DES.EVENTKEY = 103
WHERE P.CASEREFERENCE LIKE '%WO%'
ORDER BY 1,2
List all Tab
SELECT TC.TABCONTROLNO, C.CRITERIANO, C.CASEOFFICEID, O.DESCRIPTION AS OFFICE, CT.CASETYPE, CT.CASETYPEDESC, PT.PROPERTYTYPE, PT.PROPERTYNAME, CTY1.COUNTRYCODE, CTY1.COUNTRY, CTY2.COUNTRY AS VALIDCOUNTRY, CC.CASECATEGORY, CC.CASECATEGORYDESC, ISNULL(VC1.CASECATEGORYDESC, VC2.CASECATEGORYDESC) AS VALIDCASECATEGORYDESC,
C.PROGRAMID, C.PROPERTYTYPE, C.PROPERTYUNKNOWN, C.COUNTRYCODE, C.COUNTRYUNKNOWN, C.CASECATEGORY, C.CATEGORYUNKNOWN, WC.WINDOWCONTROLNO, WC.WINDOWNAME, WC.ISEXTERNAL, TC.TABCONTROLNO, TC.TABNAME, TC.DISPLAYSEQUENCE, TC.TABTITLE
FROM CRITERIA C JOIN WINDOWCONTROL WC ON C.CRITERIANO = WC.CRITERIANO
LEFT JOIN TABCONTROL TC ON WC.WINDOWCONTROLNO = TC.WINDOWCONTROLNO
LEFT JOIN OFFICE O ON C.CASEOFFICEID = O.OFFICEID
LEFT JOIN CASETYPE CT ON C.CASETYPE = CT.CASETYPE
LEFT JOIN PROPERTYTYPE PT ON C.PROPERTYTYPE = PT.PROPERTYTYPE
LEFT JOIN CASECATEGORY CC ON CC.CASETYPE = C.CASETYPE AND CC.CASECATEGORY = C.CASECATEGORY
LEFT JOIN COUNTRY CTY1 ON C.COUNTRYCODE = CTY1.COUNTRYCODE
LEFT JOIN VALIDCATEGORY VC1 ON VC1.CASETYPE = C.CASETYPE AND VC1.PROPERTYTYPE = C.PROPERTYTYPE AND VC1.CASECATEGORY = C.CASECATEGORY AND VC1.COUNTRYCODE = C.COUNTRYCODE
LEFT JOIN VALIDCATEGORY VC2 ON VC2.CASETYPE = C.CASETYPE AND VC2.PROPERTYTYPE = C.PROPERTYTYPE AND VC2.CASECATEGORY = C.CASECATEGORY AND VC2.COUNTRYCODE = 'ZZZ'
LEFT JOIN COUNTRY CTY2 ON CTY2.COUNTRYCODE = ISNULL(VC1.COUNTRYCODE, VC2.COUNTRYCODE)
WHERE TABTITLE LIKE '%Case Billing info%'
ORDER BY C.CRITERIANO, TC.DISPLAYSEQUENCE
訂閱:
文章 (Atom)