2017-06-05 48 views
0

我試圖從SQL Server表中選擇名稱中都有破折號且大於32個字符的表。Sas進程sql

我試過通過和引號,但沒有喜悅。

我不太可能生成視圖並且只能讀取權限。

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; 

任何人有什麼想法?

+1

嗨,安德魯,歡迎來到SO。請使用您嘗試的查詢和您正在查詢的表的一些示例數據編輯您的問題,並從該示例中獲取所需的輸出。這對我們理解並更好地幫助你解決問題會更好。 –

+0

您好代碼我試過了: 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'''as agg); quit; /*已嘗試所有差異的報價組合*/ /*還嘗試通過查詢 - 再次差異變化*/ proc sql; 連接到odbc(dsn = FirmstepReporting user = myname pwd = mypwd); 創建表work.tmp_gw爲 select * from connection to odbc (select * from「'form_Garden_waste_service_AF-Form-59fb9946-0f6e-4cd9-9b30-82fc5d96ec71'」n); 從odbc斷開連接; quit; –

+1

將其添加到您的問題中,而不是評論中。點擊上面的編輯按鈕,在那裏添加你的代碼,在每行之前加上四個空格,這樣代碼將被格式化。 –

回答

2

您需要在pass-through代碼中使用SQL Server語法。

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

如果你的變量名稱也是無效的SAS則需要在通改名字直通代碼也。

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

這個工程!謝謝湯姆:) –