Advertisement
Guest User

Stored Procedure

a guest
May 12th, 2011
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 18.67 KB | None | 0 0
  1. DROP TABLE IF EXISTS usaspending_staging;
  2.  
  3. CREATE TABLE usaspending_staging (
  4.     unique_transaction_id  BINARY(16) /*PRIMARY KEY*/,
  5.     transaction_status varchar(45),
  6.     obligatedamount varchar(45),
  7.     baseandexercisedoptionsvalue varchar(45),
  8.     baseandalloptionsvalue varchar(45),
  9.     maj_agency_cat varchar(45),
  10.     mod_agency varchar(45),
  11.     maj_fund_agency_cat varchar(45),
  12.     contractingofficeagencyid varchar(45),
  13.     contractingofficeid varchar(45),
  14.     fundingrequestingagencyid varchar(45),
  15.     fundingrequestingofficeid varchar(45),
  16.     fundedbyforeignentity varchar(45),
  17.     signeddate varchar(45),
  18.     effectivedate varchar(45),
  19.     currentcompletiondate varchar(45),
  20.     ultimatecompletiondate varchar(45),
  21.     lastdatetoorder varchar(45),
  22.     contractactiontype varchar(45),
  23.     reasonformodification varchar(45),
  24.     typeofcontractpricing varchar(45),
  25.     priceevaluationpercentdifference varchar(10),
  26.     subcontractplan varchar(100),
  27.     type_of_contract varchar(50),
  28.     lettercontract varchar(100),
  29.     multiyearcontract varchar(100),
  30.     performancebasedservicecontract varchar(100),
  31.     majorprogramcode varchar(100),
  32.     contingencyhumanitarianpeacekeepingoperation varchar(100),
  33.     contractfinancing varchar(100),
  34.     costorpricingdata varchar(100),
  35.     costaccountingstandardsclause varchar(100),
  36.     descriptionofcontractrequirement varchar(100),
  37.     purchasecardaspaymentmethod varchar(100),
  38.     numberofactions varchar(100),
  39.     nationalinterestactioncode varchar(100),
  40.     progsourceagency varchar(100),
  41.     progsourceaccount varchar(100),
  42.     progsourcesubacct varchar(100),
  43.     account_title varchar(100),
  44.     rec_flag varchar(100),
  45.     typeofidc varchar(100),
  46.     multipleorsingleawardidc varchar(100),
  47.     programacronym varchar(100),
  48.     vendorname varchar(100),
  49.     vendoralternatename varchar(100),
  50.     vendorlegalorganizationname varchar(100),
  51.     vendordoingasbusinessname varchar(100),
  52.     divisionname varchar(100),
  53.     divisionnumberorofficecode varchar(100),
  54.     vendorenabled varchar(100),
  55.     vendorlocationdisableflag varchar(100),
  56.     ccrexception varchar(100),
  57.     streetaddress varchar(100),
  58.     streetaddress2 varchar(100),
  59.     streetaddress3 varchar(100),
  60.     city varchar(100),
  61.     state varchar(100),
  62.     zipcode varchar(100),
  63.     vendorcountrycode varchar(100),
  64.     vendor_state_code varchar(100),
  65.     vendor_cd varchar(100),
  66.     congressionaldistrict varchar(100),
  67.     vendorsitecode varchar(100),
  68.     vendoralternatesitecode varchar(100),
  69.     dunsnumber varchar(100),
  70.     parentdunsnumber varchar(100),
  71.     phoneno varchar(100),
  72.     faxno varchar(100),
  73.     registrationdate varchar(100),
  74.     renewaldate varchar(100),
  75.     mod_parent varchar(100),
  76.     locationcode varchar(100),
  77.     statecode varchar(100),
  78.     pop_state_code varchar(100),
  79.     placeofperformancecountrycode varchar(100),
  80.     placeofperformancezipcode varchar(100),
  81.     pop_cd varchar(100),
  82.     placeofperformancecongressionaldistrict varchar(100),
  83.     psc_cat varchar(100),
  84.     productorservicecode varchar(100),
  85.     systemequipmentcode varchar(100),
  86.     claimantprogramcode varchar(100),
  87.     principalnaicscode varchar(100),
  88.     informationtechnologycommercialitemcategory varchar(100),
  89.     gfe_gfp varchar(100),
  90.     useofepadesignatedproducts varchar(100),
  91.     recoveredmaterialclauses varchar(100),
  92.     seatransportation varchar(100),
  93.     contractbundling varchar(100),
  94.     consolidatedcontract varchar(100),
  95.     countryoforigin varchar(100),
  96.     placeofmanufacture varchar(100),
  97.     manufacturingorganizationtype varchar(100),
  98.     agencyid varchar(100),
  99.     piid varchar(100),
  100.     modnumber varchar(100),
  101.     transactionnumber varchar(100),
  102.     fiscal_year varchar(100),
  103.     idvagencyid varchar(100),
  104.     idvpiid varchar(100),
  105.     idvmodificationnumber varchar(100),
  106.     solicitationid varchar(100),
  107.     extentcompeted varchar(100),
  108.     reasonnotcompeted varchar(100),
  109.     numberofoffersreceived varchar(100),
  110.     commercialitemacquisitionprocedures varchar(100),
  111.     commercialitemtestprogram varchar(100),
  112.     smallbusinesscompetitivenessdemonstrationprogram varchar(100),
  113.     a76action varchar(100),
  114.     competitiveprocedures varchar(100),
  115.     solicitationprocedures varchar(100),
  116.     typeofsetaside varchar(100),
  117.     localareasetaside varchar(100),
  118.     evaluatedpreference varchar(100),
  119.     fedbizopps varchar(100),
  120.     research varchar(100),
  121.     statutoryexceptiontofairopportunity varchar(100),
  122.     organizationaltype varchar(100),
  123.     numberofemployees varchar(100),
  124.     annualrevenue varchar(100),
  125.     firm8aflag varchar(100),
  126.     hubzoneflag varchar(100),
  127.     sdbflag varchar(100),
  128.     issbacertifiedsmalldisadvantagedbusiness varchar(100),
  129.     shelteredworkshopflag varchar(100),
  130.     hbcuflag varchar(100),
  131.     educationalinstitutionflag varchar(100),
  132.     womenownedflag varchar(100),
  133.     veteranownedflag varchar(100),
  134.     srdvobflag varchar(100),
  135.     localgovernmentflag varchar(100),
  136.     minorityinstitutionflag varchar(100),
  137.     aiobflag varchar(100),
  138.     stategovernmentflag varchar(100),
  139.     federalgovernmentflag varchar(100),
  140.     minorityownedbusinessflag varchar(100),
  141.     apaobflag varchar(100),
  142.     tribalgovernmentflag varchar(100),
  143.     baobflag varchar(100),
  144.     naobflag varchar(100),
  145.     saaobflag varchar(100),
  146.     nonprofitorganizationflag varchar(100),
  147.     isothernotforprofitorganization varchar(100),
  148.     isforprofitorganization varchar(100),
  149.     isfoundation varchar(100),
  150.     haobflag varchar(100),
  151.     ishispanicservicinginstitution varchar(100),
  152.     verysmallbusinessflag varchar(100),
  153.     hospitalflag varchar(100),
  154.     contractingofficerbusinesssizedetermination varchar(100),
  155.     is1862landgrantcollege varchar(100),
  156.     is1890landgrantcollege varchar(100),
  157.     is1994landgrantcollege varchar(100),
  158.     isveterinarycollege varchar(100),
  159.     isveterinaryhospital varchar(100),
  160.     isprivateuniversityorcollege varchar(100),
  161.     isschoolofforestry varchar(100),
  162.     isstatecontrolledinstitutionofhigherlearning varchar(100),
  163.     isserviceprovider varchar(100),
  164.     receivescontracts varchar(100),
  165.     receivesgrants varchar(100),
  166.     receivescontractsandgrants varchar(100),
  167.     isairportauthority varchar(100),
  168.     iscouncilofgovernments varchar(100),
  169.     ishousingauthoritiespublicortribal varchar(100),
  170.     isinterstateentity varchar(100),
  171.     isplanningcommission varchar(100),
  172.     isportauthority varchar(100),
  173.     istransitauthority varchar(100),
  174.     issubchapterscorporation varchar(100),
  175.     islimitedliabilitycorporation varchar(100),
  176.     isforeignownedandlocated varchar(100),
  177.     isarchitectureandengineering varchar(100),
  178.     isdotcertifieddisadvantagedbusinessenterprise varchar(100),
  179.     iscitylocalgovernment varchar(100),
  180.     iscommunitydevelopedcorporationownedfirm varchar(100),
  181.     iscommunitydevelopmentcorporation varchar(100),
  182.     isconstructionfirm varchar(100),
  183.     ismanufacturerofgoods varchar(100),
  184.     iscorporateentitynottaxexempt varchar(100),
  185.     iscountylocalgovernment varchar(100),
  186.     isdomesticshelter varchar(100),
  187.     isfederalgovernmentagency varchar(100),
  188.     isfederallyfundedresearchanddevelopmentcorp varchar(100),
  189.     isforeigngovernment varchar(100),
  190.     isindiantribe varchar(100),
  191.     isintermunicipallocalgovernment varchar(100),
  192.     isinternationalorganization varchar(100),
  193.     islaborsurplusareafirm varchar(100),
  194.     islocalgovernmentowned varchar(100),
  195.     ismunicipalitylocalgovernment varchar(100),
  196.     isnativehawaiianownedorganizationorfirm varchar(100),
  197.     isotherbusinessororganization varchar(100),
  198.     isotherminorityowned varchar(100),
  199.     ispartnershiporlimitedliabilitypartnership varchar(100),
  200.     isschooldistrictlocalgovernment varchar(100),
  201.     issmallagriculturalcooperative varchar(100),
  202.     issoleproprietorship varchar(100),
  203.     istownshiplocalgovernment varchar(100),
  204.     istriballyownedfirm varchar(100),
  205.     istribalcollege varchar(100),
  206.     isalaskannativeownedcorporationorfirm varchar(100),
  207.     iscorporateentitytaxexempt varchar(100),
  208.     walshhealyact varchar(100),
  209.     servicecontractact varchar(100),
  210.     davisbaconact varchar(100),
  211.     clingercohenact varchar(100),
  212.     otherstatutoryauthority varchar(100),
  213.     interagencycontractingauthority varchar(100)
  214. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  215.  
  216. -- load data
  217.  
  218. truncate table usaspending_staging;
  219.  
  220. start transaction;
  221.  
  222. LOAD DATA CONCURRENT INFILE '2000_All_Contracts_Full_20110401.csv'
  223.     IGNORE
  224.     INTO TABLE `usaspending_staging`
  225.     FIELDS TERMINATED BY ','
  226.     -- OPTIONALLY ENCLOSED BY '\"'
  227.     LINES TERMINATED BY '\n'
  228.     -- LINES TERMINATED BY '\r\n'
  229.     IGNORE 1 LINES
  230.     (
  231.         @unique_transaction_id,
  232.         transaction_status,
  233.         obligatedamount,
  234.         baseandexercisedoptionsvalue,
  235.         baseandalloptionsvalue,
  236.         maj_agency_cat,
  237.         mod_agency,
  238.         maj_fund_agency_cat,
  239.         contractingofficeagencyid,
  240.         contractingofficeid,
  241.         fundingrequestingagencyid,
  242.         fundingrequestingofficeid,
  243.         fundedbyforeignentity,
  244.         signeddate,
  245.         effectivedate,
  246.         currentcompletiondate,
  247.         ultimatecompletiondate,
  248.         lastdatetoorder,
  249.         contractactiontype,
  250.         reasonformodification,
  251.         typeofcontractpricing,
  252.         priceevaluationpercentdifference,
  253.         subcontractplan,
  254.         type_of_contract,
  255.         lettercontract,
  256.         multiyearcontract,
  257.         performancebasedservicecontract,
  258.         majorprogramcode,
  259.         contingencyhumanitarianpeacekeepingoperation,
  260.         contractfinancing,
  261.         costorpricingdata,
  262.         costaccountingstandardsclause,
  263.         descriptionofcontractrequirement,
  264.         purchasecardaspaymentmethod,
  265.         numberofactions,
  266.         nationalinterestactioncode,
  267.         progsourceagency,
  268.         progsourceaccount,
  269.         progsourcesubacct,
  270.         account_title,
  271.         rec_flag,
  272.         typeofidc,
  273.         multipleorsingleawardidc,
  274.         programacronym,
  275.         vendorname,
  276.         vendoralternatename,
  277.         vendorlegalorganizationname,
  278.         vendordoingasbusinessname,
  279.         divisionname,
  280.         divisionnumberorofficecode,
  281.         vendorenabled,
  282.         vendorlocationdisableflag,
  283.         ccrexception,
  284.         streetaddress,
  285.         streetaddress2,
  286.         streetaddress3,
  287.         city,
  288.         state,
  289.         zipcode,
  290.         vendorcountrycode,
  291.         vendor_state_code,
  292.         vendor_cd,
  293.         congressionaldistrict,
  294.         vendorsitecode,
  295.         vendoralternatesitecode,
  296.         dunsnumber,
  297.         parentdunsnumber,
  298.         phoneno,
  299.         faxno,
  300.         registrationdate,
  301.         renewaldate,
  302.         mod_parent,
  303.         locationcode,
  304.         statecode,
  305.         pop_state_code,
  306.         placeofperformancecountrycode,
  307.         placeofperformancezipcode,
  308.         pop_cd,
  309.         placeofperformancecongressionaldistrict,
  310.         psc_cat,
  311.         productorservicecode,
  312.         systemequipmentcode,
  313.         claimantprogramcode,
  314.         principalnaicscode,
  315.         informationtechnologycommercialitemcategory,
  316.         gfe_gfp,
  317.         useofepadesignatedproducts,
  318.         recoveredmaterialclauses,
  319.         seatransportation,
  320.         contractbundling,
  321.         consolidatedcontract,
  322.         countryoforigin,
  323.         placeofmanufacture,
  324.         manufacturingorganizationtype,
  325.         agencyid,
  326.         piid,
  327.         modnumber,
  328.         transactionnumber,
  329.         fiscal_year,
  330.         idvagencyid,
  331.         idvpiid,
  332.         idvmodificationnumber,
  333.         solicitationid,
  334.         extentcompeted,
  335.         reasonnotcompeted,
  336.         numberofoffersreceived,
  337.         commercialitemacquisitionprocedures,
  338.         commercialitemtestprogram,
  339.         smallbusinesscompetitivenessdemonstrationprogram,
  340.         a76action,
  341.         competitiveprocedures,
  342.         solicitationprocedures,
  343.         typeofsetaside,
  344.         localareasetaside,
  345.         evaluatedpreference,
  346.         fedbizopps,
  347.         research,
  348.         statutoryexceptiontofairopportunity,
  349.         organizationaltype,
  350.         numberofemployees,
  351.         annualrevenue,
  352.         firm8aflag,
  353.         hubzoneflag,
  354.         sdbflag,
  355.         issbacertifiedsmalldisadvantagedbusiness,
  356.         shelteredworkshopflag,
  357.         hbcuflag,
  358.         educationalinstitutionflag,
  359.         womenownedflag,
  360.         veteranownedflag,
  361.         srdvobflag,
  362.         localgovernmentflag,
  363.         minorityinstitutionflag,
  364.         aiobflag,
  365.         stategovernmentflag,
  366.         federalgovernmentflag,
  367.         minorityownedbusinessflag,
  368.         apaobflag,
  369.         tribalgovernmentflag,
  370.         baobflag,
  371.         naobflag,
  372.         saaobflag,
  373.         nonprofitorganizationflag,
  374.         isothernotforprofitorganization,
  375.         isforprofitorganization,
  376.         isfoundation,
  377.         haobflag,
  378.         ishispanicservicinginstitution,
  379.         verysmallbusinessflag,
  380.         hospitalflag,
  381.         contractingofficerbusinesssizedetermination,
  382.         is1862landgrantcollege,
  383.         is1890landgrantcollege,
  384.         is1994landgrantcollege,
  385.         isveterinarycollege,
  386.         isveterinaryhospital,
  387.         isprivateuniversityorcollege,
  388.         isschoolofforestry,
  389.         isstatecontrolledinstitutionofhigherlearning,
  390.         isserviceprovider,
  391.         receivescontracts,
  392.         receivesgrants,
  393.         receivescontractsandgrants,
  394.         isairportauthority,
  395.         iscouncilofgovernments,
  396.         ishousingauthoritiespublicortribal,
  397.         isinterstateentity,
  398.         isplanningcommission,
  399.         isportauthority,
  400.         istransitauthority,
  401.         issubchapterscorporation,
  402.         islimitedliabilitycorporation,
  403.         isforeignownedandlocated,
  404.         isarchitectureandengineering,
  405.         isdotcertifieddisadvantagedbusinessenterprise,
  406.         iscitylocalgovernment,
  407.         iscommunitydevelopedcorporationownedfirm,
  408.         iscommunitydevelopmentcorporation,
  409.         isconstructionfirm,
  410.         ismanufacturerofgoods,
  411.         iscorporateentitynottaxexempt,
  412.         iscountylocalgovernment,
  413.         isdomesticshelter,
  414.         isfederalgovernmentagency,
  415.         isfederallyfundedresearchanddevelopmentcorp,
  416.         isforeigngovernment,
  417.         isindiantribe,
  418.         isintermunicipallocalgovernment,
  419.         isinternationalorganization,
  420.         islaborsurplusareafirm,
  421.         islocalgovernmentowned,
  422.         ismunicipalitylocalgovernment,
  423.         isnativehawaiianownedorganizationorfirm,
  424.         isotherbusinessororganization,
  425.         isotherminorityowned,
  426.         ispartnershiporlimitedliabilitypartnership,
  427.         isschooldistrictlocalgovernment,
  428.         issmallagriculturalcooperative,
  429.         issoleproprietorship,
  430.         istownshiplocalgovernment,
  431.         istriballyownedfirm,
  432.         istribalcollege,
  433.         isalaskannativeownedcorporationorfirm,
  434.         iscorporateentitytaxexempt,
  435.         walshhealyact,
  436.         servicecontractact,
  437.         davisbaconact,
  438.         clingercohenact,
  439.         otherstatutoryauthority,
  440.         interagencycontractingauthority )
  441.         SET unique_transaction_id = UNHEX(@unique_transaction_id);
  442.  
  443. commit;
  444.  
  445. drop procedure if exists process_usaspending;
  446.  
  447. delimiter //
  448.  
  449. create procedure process_usaspending()
  450. begin
  451.  
  452.     -- declare variables
  453.     DECLARE not_found INT;
  454.     DECLARE agency INT;
  455.     DECLARE org INT;
  456.     DECLARE unique_transaction_id BINARY(16);
  457.     DECLARE transaction_status VARCHAR(100);
  458.     DECLARE obligatedamount VARCHAR(100);
  459.     DECLARE maj_agency_cat VARCHAR(100);
  460.     DECLARE mod_agency VARCHAR(100);
  461.     DECLARE effectivedate VARCHAR(100);
  462.     DECLARE ultimatecompletiondate VARCHAR(100);
  463.     DECLARE descriptionofcontractrequirement VARCHAR(100);
  464.     DECLARE account_title VARCHAR(100);
  465.     DECLARE vendorname VARCHAR(100);
  466.     DECLARE vendoralternatename VARCHAR(100);
  467.     DECLARE vendorlegalorganizationname VARCHAR(100);
  468.     DECLARE vendordoingasbusinessname VARCHAR(100);
  469.     DECLARE streetaddress VARCHAR(100);
  470.     DECLARE streetaddress2 VARCHAR(100);
  471.     DECLARE streetaddress3 VARCHAR(100);
  472.     DECLARE city VARCHAR(100);
  473.     DECLARE state VARCHAR(100);
  474.     DECLARE zipcode VARCHAR(100);
  475.     DECLARE vendorcountrycode VARCHAR(100);
  476.     DECLARE vendor_state_code VARCHAR(100);
  477.     DECLARE vendor_cd VARCHAR(100);
  478.     DECLARE dunsnumber VARCHAR(100);
  479.     DECLARE parentdunsnumber VARCHAR(100);
  480.     DECLARE phoneno VARCHAR(100);
  481.     DECLARE faxno VARCHAR(100);
  482.     DECLARE mod_parent VARCHAR(100);
  483.     DECLARE pop_state_code VARCHAR(100);
  484.     DECLARE placeofperformancecountrycode VARCHAR(100);
  485.     DECLARE placeofperformancezipcode VARCHAR(100);
  486.     DECLARE pop_cd VARCHAR(100);
  487.     DECLARE placeofperformancecongressionaldistrict VARCHAR(100);
  488.     DECLARE psc_cat VARCHAR(100);
  489.     DECLARE productorservicecode VARCHAR(100);
  490.     DECLARE principalnaicscode VARCHAR(100);
  491.    
  492.     -- set cursor to hold each row of staging data
  493.     DECLARE staging_cursor CURSOR FOR SELECT unique_transaction_id, transaction_status, obligatedamount, maj_agency_cat, mod_agency, effectivedate, ultimatecompletiondate, descriptionofcontractrequirement, account_title, vendorname, vendoralternatename, vendorlegalorganizationname, vendordoingasbusinessname, streetaddress, streetaddress2, streetaddress3, city, state, zipcode, vendorcountrycode, vendor_state_code, vendor_cd, dunsnumber, parentdunsnumber, phoneno, faxno, mod_parent, pop_state_code, placeofperformancecountrycode, placeofperformancezipcode, pop_cd, placeofperformancecongressionaldistrict, psc_cat, productorservicecode, principalnaicscode FROM usaspending_staging;
  494.     DECLARE CONTINUE HANDLER FOR NOT FOUND
  495.         SET not_found = 1;
  496.     OPEN staging_cursor;
  497.     REPEAT
  498.         FETCH staging_cursor into unique_transaction_id, transaction_status, obligatedamount, maj_agency_cat, mod_agency, effectivedate, ultimatecompletiondate, descriptionofcontractrequirement, account_title, vendorname, vendoralternatename, vendorlegalorganizationname, vendordoingasbusinessname, streetaddress, streetaddress2, streetaddress3, city, state, zipcode, vendorcountrycode, vendor_state_code, vendor_cd, dunsnumber, parentdunsnumber, phoneno, faxno, mod_parent, pop_state_code, placeofperformancecountrycode, placeofperformancezipcode, pop_cd, placeofperformancecongressionaldistrict, psc_cat, productorservicecode, principalnaicscode;
  499.         -- try and fetch agency
  500.         SET agency = COALESCE(SELECT org_agency_o_id FROM orgs_agencies WHERE org_agency_code = maj_agency_cat,SELECT min(org_id) FROM orgs WHERE org_name LIKE CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5)))
  501.         IF agency = NULL THEN
  502.             INSERT INTO orgs (org_name,org_name_length,org_type,org_sub_types) VALUES (CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5)),LENGTH(CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5))),'org','Org,GovernmentEntity,Federal,Agency');
  503.             SET agency = LAST_INSERT_ID();
  504.         END IF;
  505.         -- try and fetch org
  506.         SET org = COALESCE(SELECT MIN(org_id) FROM orgs WHERE org_name IN (vendorname, vendoralternatename, vendorlegalorganizationname, vendordoingasbusinessname), SELECT MIN(org_alias_org_id) FROM orgs_aliases WHERE org_alias in (endorname, vendoralternatename, vendorlegalorganizationname, vendordoingasbusinessname))
  507.         IF org = NULL THEN
  508.             INSERT INTO orgs(org_name,org_name_length,org_type,org_sub_types,org_created) VALUES (vendorname,LENGTH(vendorname),'org','org',DATE());
  509.             SET org = LAST_INSERT_ID();
  510.         END IF
  511.         -- add aff information
  512.         INSERT INTO affs(aff_e1_id,aff_e1_type,aff_e2_id,aff_e2_type) VALUES (agency,'org',org,'org');
  513.         UNTIL not_found = 1
  514.     END REPEAT
  515.     CLOSE staging_cursor;
  516.    
  517. end; //
  518.  
  519. CALL process_usaspending();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement