Statute Of Limitations Oracle Function (Oracle
PL/SQL)
CREATE OR REPLACE FUNCTION WITHIN4SOL(vACCOUNT VARCHAR2, STATEABBV
VARCHAR2,
vYEARS INTEGER) RETURN INTEGER IS
--KJP 05-16-2005
--Calculate Statute Of Limitations, the result is a 1
--if the account will still be in statute in 4 months, 0 If not...
SOLDAYS INTEGER := vYears * 365;
--Multiply N years times days to use the days variable
D_DAY DATE := SYSDATE + 120;
--Roughly 4 months from today is the latest it TW USEFUL_DATE DATE;
--Running through the possible values to use for dates.
--This is the value that ends up being the one
--to compare against for SOL calculation
CURSOR C1_CURSOR(vACCOUNT varchar2) IS
SELECT NVL(R.CHGOFF_DATE, SYSDATE - 7500) AS COD,
NVL(R.LAST_PAY_DATE, SYSDATE - 7500) AS LPD, NVL(R.CONTRACT_DATE,
SYSDATE - 7500)
as CD, NVL(R.DTE_LST_CR_CHG,SYSDATE - 7500) as LCC FROM
RACCOUNT R WHERE ACCOUNT = vACCOUNT and DIVISION_ID='PORT';
C1_RECORD C1_CURSOR%ROWTYPE;
BEGIN
OPEN C1_CURSOR(vACCOUNT);
FETCH C1_CURSOR INTO C1_RECORD;
CASE STATEABBV
--Texas has its own Rules
When 'TX' THEN
IF (C1_RECORD.COD + SOLDAYS) > D_DAY then
RETURN 1;
ELSE
RETURN 0;
END IF;
--Every other State but TX
ELSE
-- Find the best date
IF C1_RECORD.LCC > C1_RECORD.LPD then
USEFUL_DATE := (C1_RECORD.LCC + SOLDAYS);
END IF;
IF C1_RECORD.LPD > (SYSDATE - 7400) then
USEFUL_DATE := (C1_RECORD.LPD + SOLDAYS);
END IF;
IF C1_RECORD.CD > (SYSDATE - 7400) AND USEFUL_DATE IS NULL then
USEFUL_DATE := (C1_RECORD.CD + SOLDAYS);
END IF;
IF C1_RECORD.COD > (SYSDATE - 7400) AND USEFUL_DATE IS NULL then
USEFUL_DATE := (C1_RECORD.COD + SOLDAYS);
End IF;
IF USEFUL_DATE > D_DAY THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END CASE;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
Prioritization Oracle Stored Procedure (Oracle PL/SQL)
(Prioritized 13 Million Acccount Schedules in less than 60 minutes)
PROCEDURE sp_PRIORITIZATIONNEW (BAT_ID IN VARCHAR2,
SCORETABLE IN VARCHAR2,SUCC OUT INTEGER) IS
--KJP 05-05-2005
--New prioritization filter which grabs the accounts and
--prioritization criteria from a specified queue
--into the RECORDS_R
--cursor, puts the rules records into the RULES_R cursor. --Loops
through the
--RECORDS_R Cursor (OUTSIDE LOOP) and RULES_R Cursor (INSIDE LOOP)
--As it is looping through the rules it aggregates the score.
--When complete it updates the specified schedule...
--*****IF (and only if) the CURRENT score differs from the calculated
--score it updates the score (once a schedule is more than 90 days old
-- the score seldom changes so why do an update?...I don't.)
--Commits every 50 transactions
BEGIN
DECLARE
n_score NUMBER := 0;
n_retro_score NUMBER := 0;
n_totamtdue NUMBER;
n_usernumber4 NUMBER;
n_usernumber2 NUMBER;
n_val1 NUMBER;
n_val2 NUMBER;
n_commitcounter NUMBER := 0;
t_queue varchar2(20);
t_account varchar2(21);
d_lastcont DATE;
d_userdate1 DATE;
d_lastpay DATE;
d_frstpay DATE;
d_scheduled DATE;
d_dateentered DATE;
d_date1 DATE;
d_date2 DATE;
d_userdate2 DATE;
CURSOR RULES_R IS
SELECT ITEM_NAME, IS_DATE DATES, CONDITION, SET_POINT, MODIFIER from
RSCORE
where SCORE_TABLE= SCORETABLE;
RULES_R_record RULES_R% ROWTYPE;
CURSOR RECORDS_R IS
SELECT R.ACCOUNT, R.TOT_DUE_AMT, R.USER_DATE_1, R.USER_NUMBER_4,
R.LAST_CONT_DATE,R.LAST_PAY_DATE,R.USER_DATE_2,
R.USER_NUMBER_2,R.FRST_PMT_DATE,
S.DATE_SCHEDULED,S.DATE_ENTERED, S.PRIORITY, S.QUEUE_ID
FROM RACCOUNT R, RSCHDULE S, RQUEUE C
WHERE R.ACCOUNT=S.ACCOUNT AND S.QUEUE_ID=C.QUEUE_ID
AND C.SCORE_TABLE= SCORETABLE AND S.PRIORITY < 98;
RECORDS_R_record RECORDS_R% ROWTYPE;
BEGIN
OPEN RULES_R;
OPEN RECORDS_R;
LOOP
FETCH RECORDS_R INTO RECORDS_R_record;
EXIT WHEN RECORDS_R%NOTFOUND;
n_retro_score := RECORDS_R_record.PRIORITY;
t_queue := RECORDS_R_record.QUEUE_ID;
t_account := RECORDS_R_record.ACCOUNT;
n_totamtdue := NVL(RECORDS_R_record.TOT_DUE_AMT,0);
n_usernumber2:= NVL(RECORDS_R_record.USER_NUMBER_2,0);
n_usernumber4:= NVL(RECORDS_R_record.USER_NUMBER_4,0);
d_userdate1:= NVL(RECORDS_R_record.USER_DATE_1,TO_DATE('01-JAN-1960'));
d_userdate2:= NVL(RECORDS_R_record.USER_DATE_2,TO_DATE('01-JAN-1960'));
d_lastpay := NVL(RECORDS_R_record.LAST_PAY_DATE,TO_DATE('01-JAN-1960'));
d_lastcont := NVL(RECORDS_R_record.LAST_CONT_DATE,TO_DATE('01-JAN-1960'));
d_frstpay := NVL(RECORDS_R_record.FRST_PMT_DATE,TO_DATE('01-JAN-1960'));
d_scheduled := NVL(RECORDS_R_record.DATE_SCHEDULED,TO_DATE('01-JAN-1960'));
d_dateentered := NVL(RECORDS_R_record.DATE_ENTERED,TO_DATE('01-JAN-1960'));
IF RULES_R%ISOPEN = FALSE THEN
OPEN RULES_R;
END IF;
LOOP
FETCH RULES_R INTO RULES_R_record;
EXIT WHEN RULES_R%NOTFOUND;
d_date2 := SYSDATE + RULES_R_record.SET_POINT;
IF TRIM(RULES_R_record.DATES) = 'Y' THEN
--SECTION TO DEAL WITH THE RULES that contain DATE CRITERIA
IF RULES_R_record.ITEM_NAME = 'DATE_ENTERED' THEN
d_date1 := d_dateentered;
ELSIF RULES_R_record.ITEM_NAME = 'DATE_SCHEDULED' THEN
d_date1 := d_scheduled;
ELSIF RULES_R_record.ITEM_NAME = 'FRST_PMT_DATE' THEN
d_date1 := d_frstpay;
ELSIF RULES_R_record.ITEM_NAME = 'USER_DATE_2' THEN
d_date1 := d_userdate2;
ELSIF RULES_R_record.ITEM_NAME = 'USER_DATE_1' THEN
d_date1 := d_userdate1;
ELSIF RULES_R_record.ITEM_NAME = 'LAST_PAY_DATE' THEN
d_date1 := d_lastpay;
ELSIF RULES_R_record.ITEM_NAME = 'LAST_CONT_DATE' THEN
d_date1 := d_lastcont;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'LE' THEN
If d_date1 <= d_date2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'GE' THEN
If d_date1 >= d_date2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'LT' THEN
If d_date1 < d_date2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'EQ' THEN
If d_date1 = d_date2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'GT' THEN
If d_date1 > d_date2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
ELSE
--SECTION TO DEAL WITH THE RULES that contain NUMERIC CRITERIA
n_val2 := RULES_R_record.SET_POINT;
IF RULES_R_record.ITEM_NAME = 'TOT_DUE_AMT' THEN
n_val1 := n_totamtdue;
ELSIF RULES_R_record.ITEM_NAME = 'USER_NUMBER_2' THEN
n_val1 := n_usernumber2;
ELSIF RULES_R_record.ITEM_NAME = 'USER_NUMBER_4' THEN
n_val1 := n_usernumber4;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'LE' THEN
If n_val1 <= n_val2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'GE' THEN
If n_val1 >= n_val2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'LT' THEN
If n_val1 < n_val2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'EQ' THEN
If n_val1 = n_val2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
IF TRIM(RULES_R_record.CONDITION) = 'GT' THEN
If n_val1 > n_val2 Then
n_score := n_score + TO_NUMBER(RULES_R_record.MODIFIER,'9999');
END IF;
END IF;
END IF;
END LOOP;
CLOSE RULES_R;
IF n_score <> n_retro_score THEN
UPDATE RSCHDULE SET PRIORITY= n_score
WHERE ACCOUNT = RECORDS_R_record.ACCOUNT
AND QUEUE_ID = t_queue AND DIVISION_ID='PORT';
--Commit every 50 transactions
IF (n_commitcounter > 50) THEN
n_commitcounter := 0;
COMMIT;
END IF;
n_commitcounter := n_commitcounter + 1;
END IF;
n_score := 0;
END LOOP;
COMMIT;
CLOSE RECORDS_R;
CLOSE RULES_R;
INSERTLOGENTRY ('PRIORITIZATION','STOP' ,'' , '','','sp_PRIORITIZATIONNEW',
'',BAT_ID,'Stored Procedure ran successfully on score table: ' ||
SCORETABLE );
SUCC := 1;
--Error handing
EXCEPTION
WHEN VALUE_ERROR THEN
INSERTLOGENTRY ('PRIORITIZATION','STOP' ,'' , '','','sp_PRIORITIZATIONNEW'
,'',BAT_ID,'Stored Procedure ran successfully 0 records affected' );
SUCC := 3;
WHEN INVALID_CURSOR THEN
INSERTLOGENTRY ('PRIORITIZATION','STOP' ,'' ,
'','','sp_PRIORITIZATIONNEW'
,'',BAT_ID,'Stored Procedure ran successfully on score table: ' ||
SCORETABLE );
SUCC := 1;
WHEN OTHERS THEN
INSERTLOGENTRY ('PRIORITIZATION','' ,'' , '','','sp_PRIORITIZATIONNEW'
,'',BAT_ID,'Error Occured:' ||SQLERRM);
SUCC := 0;
END;
--Error handing
EXCEPTION
WHEN VALUE_ERROR THEN
INSERTLOGENTRY ('PRIORITIZATION','' ,'' , '','','sp_PRIORITIZATIONNEW'
,'',BAT_ID,'Stored Procedure ran successfully affected 0 records');
WHEN OTHERS THEN
INSERTLOGENTRY ('PRIORITIZATION','' ,'' , '','','sp_PRIORITIZATIONNEW'
,'',BAT_ID,'Error Occured: ' ||SQLERRM);
END;
/
Insert / Update Oracle Stored Procedure (PL/SQL)
PROCEDURE sp_20040552MORTGAGENOTE ( BAT_ID IN VARCHAR2, SUCC OUT
INTEGER) IS
--KJP
--New Filter Update the 3 phone numbers in RACCTREL
--BAT_ID Input parameter will be populated by the .Net application so it
can keep track of the batches
--SUCC keeps track of success or failure which will be monitored by the
.Net app. also
BEGIN
DECLARE
vCOMMITCounter INTEGER := 0;
vCounter integer := 0;
vRespUNIT varchar2(20);
CURSOR GOODPHONELIST IS
Select ACCOUNT, BALANCE,PAYMENT FROM MORTGAGENOTE;
GOODPHONERECORD GOODPHONELIST%ROWTYPE;
BEGIN
OPEN GOODPHONELIST;
LOOP
FETCH GOODPHONELIST into GOODPHONERecord;
EXIT WHEN GOODPHONELIST%NOTFOUND;
INSERTRNOTETRN (GOODPHONERecord.ACCOUNT,
TO_CHAR(SYSDATE,'DD-MON-YYYY'),TO_CHAR(SYSDATE,'sssss'), 1, 'LTR' ,
'01/11/2005 CBR PULLED FROM TRANSUNION...N1 HAS ACTIVE MORTGAGE:
BALANCE:' || GOODPHONERecord.BALANCE || ' MONTHLY PAYMENT:' ||
GOODPHONERecord.PAYMENT ,GOODPHONERecord.ACCOUNT, 'N',
TO_CHAR(SYSDATE,'DD-MON-YYYY'),TO_CHAR(SYSDATE,'sssss'), 0);
INSERTLOGENTRY (GOODPHONERecord.ACCOUNT,'','','','','sp_MLSPHUP ','',BAT_ID,'Note
Added');
Update MORTGAGENOTE set F5 = '1' where ACCOUNT = GOODPHONERecord.ACCOUNT;
vCounter := vCounter + 1;
vCOMMITCounter := vCOMMITCounter + 1;
IF vCOMMITCounter > 40 THEN
COMMIT;
vCOMMITCounter := 0;
END IF;
END LOOP;
--Final commit...
COMMIT;
CLOSE GOODPHONELIST;
SUCC := 1;
INSERTLOGENTRY ('000000000000','','','','','sp_MLSPHUP','',BAT_ID,'Stored
procedure ran successfully ' || vCounter || ' records changed');
--Didn't find any records to change...Log it
EXCEPTION
WHEN VALUE_ERROR THEN
INSERTLOGENTRY ('000000000000','','','','','sp_MLSPHUP','',BAT_ID,'Stored
procedure ran successfully 0 records changed');
SUCC := 3;
END;
EXCEPTION
WHEN OTHERS THEN
--SP was Unsuccessful (0) this should only happen in a catastrophic
event
INSERTLOGENTRY ('000000000000','' ,'' , '','','sp_MLSPHUP','',BAT_ID,'Error
Occured: ' ||SQLERRM);
SUCC:= 0;
END;
Insert / Update Oracle Stored Procedure (PL/SQL)
PROCEDURE sp_TUNAPHONES ( BAT_ID IN VARCHAR2, SUCC OUT INTEGER) IS
--KJP
--BAT_ID Input parameter will be populated by the .Net application so it
can keep track of the batches
--SUCC keeps track of success or failure which will be monitored by the
.Net app. also
BEGIN
DECLARE
vRef varchar2(20) := 'sp_TUNAPHONES';
vSCHEDEDALREADY integer :=0;
vCOMMITCounter integer := 0;
vCounter integer := 0;
vRespUNIT varchar2(20);
CURSOR GOODPHONELIST IS
Select ACCT, AREACODE || '-' || SUBSTR(PHONE,0,3) || '-' ||
SUBSTR(PHONE,4,4) as formatted_phone FROM TEMP_TUNA;
GOODPHONERECORD GOODPHONELIST%ROWTYPE;
BEGIN
--PPTPLISTRecord PPTPLIST%ROWTYPE;
OPEN GOODPHONELIST;
LOOP
FETCH GOODPHONELIST into GOODPHONERecord;
EXIT WHEN GOODPHONELIST%NOTFOUND;
INSERT INTO rrelhist SELECT * FROM racctrel where account =
GOODPHONERecord.ACCT and REL_POS='1';
UPDATE RACCTREL SET
PHONE_HOME = GOODPHONERecord.formatted_phone,
USER_TEXT_6 = 'CBR010505',
UPDATE_DATE = TRUNC(SYSDATE),
UPDATE_TIME = TO_CHAR(SYSDATE,'sssss')
WHERE ACCOUNT = GOODPHONERecord.ACCT and REL_POS='1';
Update raccount set USER_DATE_5 = TRUNC(SYSDATE) WHERE ACCOUNT =
GOODPHONERecord.ACCT;
vCounter := vCounter + 1;
vCOMMITCounter := vCOMMITCounter + 1;
IF vCOMMITCounter > 40 THEN
INSERTLOGENTRY (GOODPHONERecord.ACCT,'','','','','sp_TUNAMASS ','',BAT_ID,'H:'
||GOODPHONERecord.FORMATTED_PHONE );
COMMIT;
vCOMMITCounter := 0;
END IF;
-- INSERTRRRESPST (PPTPLISTRecord.ACCOUNT,'PORT','Filter:
SPCL','DEAD',TO_CHAR(SYSDATE + 1,'DD-MON-YYYY'));
--INSERTRSCHDULE ('PORT', PPTPLISTRecord.ACCOUNT, 'NEW',
TO_CHAR(SYSDATE,'DD-MON-YYYY'),'',TO_CHAR(SYSDATE,'DD-MON-YYYY'),
TO_CHAR(SYSDATE,'sssss'),'PORT', 'I', 98, 'NEW',
PPTPLISTRecord.RESPONSIBILITY, 'I', 'New Account', 'N', 0,'' );
--INSERTLOGENTRY (GOODPHONERecord.ACCT,'','','','','sp_TUNAMASS ','',BAT_ID,'H:'
||GOODPHONERecord.FORMATTED_PHONE );
END LOOP;
--Final commit...
COMMIT;
CLOSE GOODPHONELIST;
SUCC := 1;
INSERTLOGENTRY ('000000000000','','','','','sp_MLSPHUP','',BAT_ID,'Stored
procedure ran successfully ' || vCounter || ' records changed');
--Didn't find any records to change...Log it
EXCEPTION
WHEN VALUE_ERROR THEN
INSERTLOGENTRY ('000000000000','','','','','sp_MLSPHUP','',BAT_ID,'Stored
procedure ran successfully 0 records changed');
SUCC := 3;
END;
EXCEPTION
WHEN OTHERS THEN
--SP was Unsuccessful (0) this should only happen in a catastrophic
event
INSERTLOGENTRY ('000000000000','' ,'' , '','','sp_MLSPHUP','',BAT_ID,'Error
Occured: ' ||SQLERRM);
SUCC:= 0;
END;
Insert / Update Oracle Stored Procedure (PL/SQL)
PROCEDURE sp_100K_RACCTREL_UPD ( BAT_ID IN VARCHAR2, SUCC OUT INTEGER)
IS
--KJP
--UPDATE RACCTREL with the latest information from the Credit bureau
Pulls
--BAT_ID Input parameter will be populated by the .Net application so it
can keep track of the batches
--SUCC keeps track of success or failure which will be monitored by the
.Net app. also
BEGIN
DECLARE
vRef varchar2(20) := 'sp_100KCB';
vSCHEDEDALREADY integer :=0;
vCOMMITCounter integer := 0;
vCounter integer := 0;
vRespUNIT varchar2(20);
CURSOR GOODPHONELIST IS
Select * from KPATRICK.MASS_CB_100K_WKD where (ROWNUM < 10001) and
BRANCH_NO <> '1';
GOODPHONERECORD GOODPHONELIST%ROWTYPE;
BEGIN
--PPTPLISTRecord PPTPLIST%ROWTYPE;
OPEN GOODPHONELIST;
LOOP
FETCH GOODPHONELIST into GOODPHONERecord;
EXIT WHEN GOODPHONELIST%NOTFOUND;
INSERT INTO rrelhist SELECT * FROM racctrel where account =
GOODPHONERecord.ACCOUNT and REL_POS='1';
UPDATE RACCTREL SET
PHONE_HOME = GOODPHONERecord.PHONE_HOME,
TIME_ZONE = GOODPHONERecord.TIME_ZONE,
USER_TEXT_6 = 'CBR032205',
UPDATE_DATE = TRUNC(SYSDATE),
UPDATE_TIME = TO_CHAR(SYSDATE,'sssss')
WHERE ACCOUNT = GOODPHONERecord.ACCOUNT and REL_POS='1' and
GOODPHONERecord.PHONE_HOME not like 'BAD%';
UPDATE RACCTREL SET
ADDRESS1 = GOODPHONERecord.ADDRESS1,
CITY = GOODPHONERecord.CITY,
STATE = GOODPHONERecord.STATE,
ZIP_CODE= GOODPHONERecord.ZIP_CODE,
USER_TEXT_6 = 'CBR032205',
UPDATE_DATE = TRUNC(SYSDATE),
UPDATE_TIME = TO_CHAR(SYSDATE,'sssss')
WHERE ACCOUNT = GOODPHONERecord.ACCOUNT and REL_POS='1' and
GOODPHONERecord.ZIP_CODE not like 'BAD%';
Update KPATRICK.MASS_CB_100K_WKD set BRANCH_NO = '1' WHERE ACCOUNT =
GOODPHONERecord.ACCOUNT;
vCounter := vCounter + 1;
COMMIT;
INSERTLOGENTRY (GOODPHONERecord.ACCOUNT,'','','','','sp_150KCB','',BAT_ID,'Updated
Phone number and/or address');
END LOOP;
CLOSE GOODPHONELIST;
SUCC := 1;
INSERTLOGENTRY ('000000000000','','','','','sp_150KCB','',BAT_ID,'Stored
procedure ran successfully ' || vCounter || ' records changed');
--Didn't find any records to change...Log it
EXCEPTION
WHEN VALUE_ERROR THEN
INSERTLOGENTRY ('000000000000','','','','','sp_150KCB','',BAT_ID,'Stored
procedure ran successfully 0 records changed');
SUCC := 3;
END;
EXCEPTION
WHEN OTHERS THEN
--SP was Unsuccessful (0) this should only happen in a catastrophic
event
INSERTLOGENTRY ('000000000000','' ,'' , '','','sp_150KCB','',BAT_ID,'Error
Occured: ' ||SQLERRM);
SUCC:= 0;
END;
Select Oracle Materialized View (PL/SQL)
CREATE MATERIALIZED VIEW GPMS.GPMS_ADHOC_MATR_VIEW
--Ken12/09/2005
--need to grant these permissions to GPMS
--CREATE MATERIALIZED VIEW or CREATE ANY MATERIALIZED VIEW
--CREATE TABLE or CREATE ANY TABLE
--CREATE VIEW or CREATE ANY VIEW
NOCACHE
NOLOGGING
NOPARALLEL
BUILD IMMEDIATE
REFRESH COMPLETE
START WITH TO_DATE('08-Dec-2005 10:00:00','dd-mon-yyyy hh24:mi:ss')
NEXT SYSDATE + (1/48)
AS
SELECT a.ID, a.GTAG, a.RECEIVINGDOC, a.QTYRECEIVED, a.qtyonhand,
a.QTYONHAND AS qty, a.UNITOFISSUE, a.LINEITEM, a.MANSERIAL, a.PARTNUMBER,
a.MODELNUMBER, a.ITEMCOST, a.TASKNUMBER, a.DESCRIPTION, a.CATEGORY,
a.EQUIPCATEGORY, a.DRAWINGNUMBER, a.COMPCERT, a.MSDS,
a.MILCOMSPEC, a.STATUS, a.REMARKS, a.LOCATION, a.RECEIVINGLPA, TO_CHAR(
a.RECEIPTDATE,'MM-DD-YYYY') as RECEIPTDATE, a.CONTRACT,
a.RECEIVINGDOCTYPE, a.CUSTODIAN,
a.LASTINVENTORIED, a.LOCKED, a.MANUFACTURER, a.CONDITION,
a.CHECKEDOUT_TO, a.NSN, a.DRAWINGITEMNUMBER, 0 AS issuegroup,
c.facility, b.location_name
FROM GPMS.ITEMS a, GPMS.LOCATIONS b, GPMS.FACILITIES c
WHERE c.id = b.facility_id and a.location = b.id;
/
commit; |
Code Samples
|