2017-06-05 5 views
0

Ich versuche, aus einer SQL-Server-Tabelle auszuwählen, die beide Bindestriche im Namen hat und mehr als 32 Zeichen ist.Sas-Prozess sql

Ich habe versucht, durch und Zitate, aber keine Freude.

Es ist sehr unwahrscheinlich, dass ich eine Ansicht produzieren konnte und nur Lesezugriff hatte.

proc sql; 
    drop table poss_gw1; 
    create table poss_gw1 as (select * from cdb.'''form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-‌​9b30-82fc5d96ec71'''‌​n as agg); 
quit; 

proc sql; 
    connect to odbc(dsn=FirmstepReporting user=myname pwd=mypwd); 
    Create table work.tmp_gw as select * from connection to odbc (select * from "'form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-‌​82fc5d96ec71'"n); 
    disconnect from odbc; 
quit; 

Irgendwelche Ideen?

+1

Hallo Andrew, willkommen in SO. Bitte editieren Sie Ihre Frage mit Ihrer Abfrage und einigen Beispieldaten der Tabelle, die Sie abfragen und aus dieser Probe die gewünschte Ausgabe. Es wird viel besser für uns sein, besser zu verstehen und Ihnen bei Ihrem Problem zu helfen. –

+0

Hallo Code Ich habe versucht: proc sql; Falltabelle poss_gw1; Tabelle erstellen poss_gw1 als ( wählen * von cdb. '' 'Form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-82fc5d96ec71' 'als Agg); beenden; /* Habe versucht mit allen Diff-Kombinationen von Anführungszeichen */ /* Auch versuchte Pass-Anfragen - wieder Diff-Variationen */ proc sql; Verbindung mit ODBC (dsn = FirmstepReporting Benutzer = Myname Pwd = Mypwd); Erstellen Sie die Tabelle work.tmp_gw als Wählen Sie * aus der Verbindung mit odbc (wählen Sie * aus "'form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-82fc5d96ec71'" n); trennen von odbc; beenden; –

+1

Fügen Sie es zu Ihrer Frage hinzu, nicht in Kommentaren. Klicken Sie auf die Schaltfläche Bearbeiten oben und fügen Sie Ihren Code dort hinzu, fügen Sie vier Leerzeichen vor jeder Zeile hinzu, damit der Code formatiert wird. –

Antwort

2

Sie müssen die SQL Server-Syntax im Pass-Thru-Code verwenden.

create table work.tmp_gw as 
select * from connection to odbc 
(select * 
from "form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-‌​82fc5d96ec71" 
); 

Wenn Ihre Variablennamen für SAS auch nicht gültig sind, dann müssen Sie auch den Namen im Pass thru-Code ändern.

create table work.tmp_gw as 
select * from connection to odbc 
(select id 
     , "invalid-name" as valid_name 
from "form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-‌​82fc5d96ec71" 
); 
+0

Das funktioniert! Danke Tom :) –