PCB
Index field. That is, to access the same database using different view descriptors in any SAS
procedure, you must include multiple PCBs for that database.
options linesize=132; proc sql; title2 'IMS Data Retrieved by a PROC SQL query'; select * /* An asterisk means select all variables */ from vlib.custinfo;
The SAS System
IMS Data Retrieved by a PROC SQL query
SOC_SEC_
NUMBER CUSTOMER_NAME ADDR_LINE_1 ADDR_LINE_2
CITY STATE COUNTRY ZIP_CODE HOME_PHONE OFFICE_PHONE
----------------------------------------------------------------------------------------------------------------
667-73-8275 WALLS, HOOPER J. 4525 CLARENDON RD
RAPIDAN VA USA 22215-5600 803-657-3098 803-645-4418
434-62-1234 SUMMERS, MARY T. 4322 LEON ST.
GORDONSVILLE VA USA 26001-0670 803-657-1687
436-42-6394 BOOKER, APRIL M. 9712 WALLINGFORD PL.
GORDONSVILLE VA USA 26001-0670 803-657-1346
434-62-1224 SMITH, JAMES MARTIN 133 TOWNSEND ST.
GORDONSVILLE VA USA 26001-0670 803-657-3437
178-42-6534 PATTILLO, RODRIGUES 9712 COOK RD.
ORANGE VA USA 26042-1650 803-657-1346 803-657-1345
156-45-5672 O'CONNOR, JOSEPH 235 MAIN ST.
ORANGE VA USA 26042-1650 803-657-5656 803-623-4257
657-34-3245 BARNHARDT, PAMELA S. RT 2 BOX 324
CHARLOTTESVILLE VA USA 25804-0997 803-345-4346 803-355-2543
667-82-8275 COHEN, ABRAHAM 2345 DUKE ST.
CHARLOTTESVILLE VA USA 25804-0997 803-657-7435 803-645-4234
456-45-3462 LITTLE, NANCY M. 4543 ELGIN AVE.
RICHMOND VA USA 26502-3317 803-657-3566
234-74-4612 WIKOWSKI, JONATHAN S. 4356 CAMPUS DRIVE
RICHMOND VA USA 26502-5317 803-467-4587 803-654-7238
title2 'IMS Data Retrieved by a WHERE Statement';
select *
from vlib.custinfo
where city='RICHMOND';
The SAS System
IMS Data Retrieved Using a WHERE Statement
SOC_SEC_
NUMBER CUSTOMER_NAME ADDR_LINE_1 ADDR_LINE_2
CITY STATE COUNTRY ZIP_CODE HOME_PHONE OFFICE_PHONE
-------------------------------------------------------------------------------------------------------------
456-45-3462 LITTLE, NANCY M. 4543 ELGIN AVE.
RICHMOND VA USA 26502-3317 803-657-3566
234-74-4612 WIKOWSKI, JONATHAN S. 4356 CAMPUS DRIVE
RICHMOND VA USA 26502-5317 803-467-4587 803-654-7238
update vlib.custinfo
set zip_code = '27702-3317'
where soc_sec_number = '234-74-4612';
update vlib.custinfo
set addr_line_2 = '151 Knox St.'
where soc_sec_number = '234-74-4612';
title2 'Updated Data in IMS AcctDBD Database';
select *
from vlib.custinfo
where soc_sec_number = '234-74-4612';
The SAS System
Updated Data in IMS ACCTDBD Database
SOC_SEC_
NUMBER CUSTOMER_NAME ADDR_LINE_1 ADDR_LINE_2
CITY STATE COUNTRY ZIP_CODE HOME_PHONE OFFICE_PHONE
--------------------------------------------------------------------------------------------------------------
234-74-4612 WIKOWSKI, JONATHAN S. 151 Knox St.
RICHMOND VA USA 27702-3317 803-467-4587 803-654-7238234-74-4612 for the SOC_SEC_NUMBER variable is deleted from the AcctDBD database. Note that
any child segments that exist under
the parent segment in this example are also deleted.
options linesize=132;
proc sql;
delete from vlib.custinfo
where soc_sec_number = '234-74-4612';
title2 'Observation Deleted from IMS
ACCTDBD Database';
select *
from vlib.custinfo;
The SAS System
Observation Deleted from IMS ACCTDBD Database
SOC_SEC_
NUMBER CUSTOMER_NAME ADDR_LINE_1 ADDR_LINE_2
CITY STATE COUNTRY ZIP_CODE HOME_PHONE OFFICE_PHONE
--------------------------------------------------------------------------------------------------------------
667-73-8275 WALLS, HOOPER J. 4525 CLARENDON RD
RAPIDAN VA USA 22215-5600 803-657-3098 803-645-4418
434-62-1234 SUMMERS, MARY T. 4322 LEON ST.
GORDONSVILLE VA USA 26001-0670 803-657-1687
436-42-6394 BOOKER, APRIL M. 9712 WALLINGFORD PL.
GORDONSVILLE VA USA 26001-0670 803-657-1346
434-62-1224 SMITH, JAMES MARTIN 133 TOWNSEND ST.
GORDONSVILLE VA USA 26001-0670 803-657-3437
178-42-6534 PATTILLO, RODRIGUES 9712 COOK RD.
ORANGE VA USA 26042-1650 803-657-1346 803-657-1345
156-45-5672 O'CONNOR, JOSEPH 235 MAIN ST.
ORANGE VA USA 26042-1650 803-657-5656 803-623-4257
657-34-3245 BARNHARDT, PAMELA S. RT 2 BOX 324
CHARLOTTESVILLE VA USA 25804-0997 803-345-4346 803-355-2543
667-82-8275 COHEN, ABRAHAM 2345 DUKE ST.
CHARLOTTESVILLE VA USA 25804-0997 803-657-7435 803-645-4234
456-45-3462 LITTLE, NANCY M. 4543 ELGIN AVE.
RICHMOND VA USA 26502-3317 803-657-3566
data vlib.custinfo
work.phoneupd (keep=soc_sec_number home_phone
office_phone)
work.nossnumb (keep=soc_sec_number home_phone
office_phone);
modify vlib.custinfo mydata.phonenum;
by soc_sec_number;
select (_iorc_);
when (%sysrc(_sok))
/* soc_sec_number found in ACCTDBD */
do;
replace vlib.custinfo;
output phoneupd;
end;
when (%sysrc(_dsenmr))
/* soc_sec_number not found in ACCTDBD */
do;
_error_=0;
output nossnumb;
/* stores misses in NOSSNUMB */
end;
otherwise
/* traps unexpected outcomes */
do;
put 'Unexpected error condition:
_iorc_ = ' _iorc_;
put 'for SOC_SEC_NUMBER=' soc_sec_number
'. DATA step continuing.';
_error_=0;
end;
end;
run;/* Print data set named phoneupd */ proc print data=work.phoneupd nodate; title2 'SSNs updated.'; run;The results are shown in the following output:
The SAS System
SSNs updated.
SOC_SEC_
OBS NUMBER HOME_PHONE OFFICE_PHONE
1 667-73-8275 703-657-3098 703-645-4418
2 434-62-1234 703-645-441
3 178-42-6534 703-657-1346 703-657-1345
4 156-45-5672 703-657-5656 703-623-4257
5 657-34-3245 703-345-4346 703-355-5438
6 456-45-3462 703-657-3566 703-645-1212
/* Print data set named nossnumb */ proc print data=work.nossnumb nodate; title2 'SSNs not updated.'; run;The results produced are shown in the following output:
The SAS System
SSNs not updated.
SOC_SEC_
OBS NUMBER HOME_PHONE OFFICE_PHONE
1 416-41-3162 703-657-3166 703-615-1212