2016-05-30 10 views
0
data ABC.TABLE_1 (REPLACE=YES); 
set ABC.TABLE_1 (OBS=0); 
run; 

ERROR: The TERADATA table TABLE_1 has been opened for OUTPUT. This table already exists, or there is a name 
     conflict with an existing object. This table will not be replaced. This engine does not support the REPLACE option. 

Was ist los?Datensatz: Diese Engine unterstützt die REPLACE-Option nicht

Danke, Aola

+1

Die Fehlermeldung zeigt Ihnen, was falsch ist. Der Name, den Sie verwenden möchten, existiert bereits, Sie versuchen, REPLACE zu verwenden, aber es wird nicht unterstützt. Versuchen Sie, das Original selbst fallen zu lassen oder verwenden Sie einen Namen, der nicht mit einem bestehenden Namen in Konflikt steht. – MatBailie

+0

Ich brauche den gleichen Namen. Ich kann die Originaltabelle löschen, aber SAS hat nur 2 Typen, Strings und Doubles (SAS -> Teradata). Zum Beispiel habe ich in der Tabelle die ID-Spalte im Format INTEGER. Ich benutze proc append, aber wenn ich die Tabelle überprüfe, habe ich die ID im Double- oder Float-Format. Ich habe Problem, dann kann ich proc sql löschen, aber ist unwirksam. – aola

+0

Haben Sie in Betracht gezogen, die CREATE TABLE-Anweisung mit der Funktion EXECUTE() in PROC SQL selbst zu übergeben, indem Sie auf Teradata drücken? –

Antwort

1

entweder in der Tabelle selbst löschen.

proc delete data=ABC.TABLE_1 ; run; 

oder

proc sql; drop table ABC.TABLE_T; quit; 

Oder wenn Sie die Tabelle nicht die entfernen Sie einfach die Beobachtungen löschen möchten.

proc sql; delete from ABC.TABLE_T; quit; 

Verwenden Sie dann PROC APPEND, um die Daten der vorhandenen Tabelle hinzuzufügen.

Wenn Sie Teradata mitteilen möchten, welcher Typ verwendet werden soll, können Sie die DBTYPE-Datasetoption verwenden.

data ABC.TABLE_1 (dbtype=(id='integer')); 
    set table_1; 
run;