BookmarkSubscribeRSS Feed
Mike_Davis
Fluorite | Level 6

Hello all,

if I want upate tabel work.one for its column x and y as below,and want update their length,but there is error happend when I use length= statement in proc sql .

could anyone tell me how to change variable's length when using update in sql procedure?

Thanks!

Mike

data work.one;

length x y $5;

x='aaa';

y='bbb';

run;

proc sql noprint;

update work.one

set x= catx('|',x,'abcdefghijklmn') length x=$200

     ,y= catx('|',y"abcdefghilklmn") length y=$200

  ;

quit;

3 REPLIES 3
shivas
Pyrite | Level 9

Hi,

Try this..hope it helps

proc sql;

create table want as

select catx('|',x,'abcdefghijklmn') as x length =  200,catx('|',y,"abcdefghilklmn") as y length = 200 from one;

  quit;

Thanks,

Shiva

Doc_Duke
Rhodochrosite | Level 12

you can't change the length in an update statement, you need to use a create statemen.  Update may change in place, create builds a new table.

Ksharp
Super User

As Doc@Duke said, you need another statement to change the length of columns.

data work.one;
length x y $5;
x='aaa';
y='bbb';
run;

proc sql noprint;
alter table work.one modify x char(200),y char(200);


update work.one
set x= catx('|',x,'abcdefghijklmn') 
     ,y= catx('|',y,"abcdefghilklmn")
  ;
quit;

Ksharp

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 3 replies
  • 4701 views
  • 8 likes
  • 4 in conversation