Desktop productivity for business analysts and programmers

Error: Teradata insert: No more room in database

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 16
Accepted Solution

Error: Teradata insert: No more room in database

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.


Accepted Solutions
Solution
‎03-06-2018 08:27 PM
PROC Star
Posts: 549

Re: Error: Teradata insert: No more room in database

[ Edited ]

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


All Replies
Super User
Super User
Posts: 8,275

Re: Error: Teradata insert: No more room in database

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;
Solution
‎03-06-2018 08:27 PM
PROC Star
Posts: 549

Re: Error: Teradata insert: No more room in database

[ Edited ]

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.

Occasional Contributor
Posts: 16

Re: Error: Teradata insert: No more room in database

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.
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 328 views
  • 1 like
  • 3 in conversation