BookmarkSubscribeRSS Feed
saroj
Calcite | Level 5
Hi I want to delete rows from a db2 table as shown in below code. the table has a qualifier name followed by table name. ADRPMMT - is the table qualifier and INV_COMM_CONV_RATE is the table name. But it is taking ADRPMMT as SAS libname. please let me know what change is required to the code.
22 PROC SQL;
23 CONNECT TO DB2(DB2SSID=DB39);
24 DELETE FROM ADRPMMT.INV_COMM_CONV_RATE
25 WHERE ROW_LOAD_DATE = &CHKDATE ;
ERROR: Libname ADRPMMT is not assigned.
ERROR: Libname ADRPMMT is not assigned.
ERROR: Libname ADRPMMT is not assigned.
ERROR: Libname ADRPMMT is not assigned.
ERROR: Libname ADRPMMT is not assigned.
ERROR: Libname ADRPMMT is not assigned.
2 REPLIES 2
LinusH
Tourmaline | Level 20
If you are using DELETE FROM in "open" proc sql code, it will assume that twp level table names will contain a SAS libname. In fact, it requires that you first assign a libname to your DB2 database.

But by using CONNECT TO, you are using SQL pass-thru. To use pass-thru to delete records enclose your DB2 specific SQL using execute:

EXCUTE( ... ) BY DB2;

/Linus
Data never sleeps
saroj
Calcite | Level 5
Thanks Linus , it worked !

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1712 views
  • 0 likes
  • 2 in conversation