BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
c4th1
Fluorite | Level 6

Hi I am running the EG code that is pointing towards the Teradata sql before Teradata sends the info back to the lasr table. however I have been receiving this error message although we have increase the room.

 

Would you be able to advise what are the steps to eliminate this issue which has happened for the second time in three months time?

 

Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions
kiranv_
Rhodochrosite | Level 12

No more room in database, usually happens, if you having wrong Primary index for Teradata Table. 

 

for example, if you have created table using code below

 

data tdtable.employee_scoring;

set work.employee_scoring(keep= Job_type employee_number Sal Sal_rating);

run;

 

When primary index is not explicitly defined, usually first column is selected as primary index. In the above example if the primary index was not explicitly defined, job_type, which is the first column, will be selected as primary index, which may lead to data skewing and if your first column is not all unique then you can see the error your mentioning.

 

Please mention primary index explicitly by using dbcreate_table_opts option.

 

data tdtable.employee_scoring (dbcreate_table_opts= 'primary index(employee_number)');

set work.employee_scoring(keep= Job_type employee_number Sal, Sal_rating);

run;

 

if possible, please share your code.

View solution in original post

3 REPLIES 3
Tom
Super User Tom
Super User

Talk to your Teradata DBA.

 

If you understand your process you should be able to make some pretty accurate estimates of how much space you need.

Make sure you have enough before running the program.

 

Make sure your tables are defined to be efficient.

 

Note that if you are using SAS to define new tables you probably want to look into the DBTYPE= dataset option to allow you to define the Teradata type that will be used for your variables.  You can include Teradata compression options.

 

libname out teradata .... ;
data out.new (dbtype=(gender="varchar(6) compress ('Male','Female')"));
  set have;
run;
kiranv_
Rhodochrosite | Level 12

No more room in database, usually happens, if you having wrong Primary index for Teradata Table. 

 

for example, if you have created table using code below

 

data tdtable.employee_scoring;

set work.employee_scoring(keep= Job_type employee_number Sal Sal_rating);

run;

 

When primary index is not explicitly defined, usually first column is selected as primary index. In the above example if the primary index was not explicitly defined, job_type, which is the first column, will be selected as primary index, which may lead to data skewing and if your first column is not all unique then you can see the error your mentioning.

 

Please mention primary index explicitly by using dbcreate_table_opts option.

 

data tdtable.employee_scoring (dbcreate_table_opts= 'primary index(employee_number)');

set work.employee_scoring(keep= Job_type employee_number Sal, Sal_rating);

run;

 

if possible, please share your code.

c4th1
Fluorite | Level 6
Hi Kiranv,
Thank you for the reply. I found out I only need to create database - so I am using the one you included in your post. so no new code to be shared.

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!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

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
  • 22330 views
  • 1 like
  • 3 in conversation