我不知道爲什麼我會嘗試連接到odbc時會出現錯誤如何正確連接到數據庫?
proc sql; 24 create table xxx.test as 25(select * from nxxxe.nxrxxt);
1)連接成功 2)邏輯庫引用名成功
我沒有執行任何查詢。我怎麼會有語法錯誤?我什至沒有任何)
我不知道爲什麼我會嘗試連接到odbc時會出現錯誤如何正確連接到數據庫?
proc sql; 24 create table xxx.test as 25(select * from nxxxe.nxrxxt);
1)連接成功 2)邏輯庫引用名成功
我沒有執行任何查詢。我怎麼會有語法錯誤?我什至沒有任何)
你在你的查詢中有括號;嘗試刪除它們:
proc sql;
create table kyle.test as
select *
from noagree.no_agreement_list;
quit;
但試着用小表開始。另外,特別是Teradata,指定索引非常重要。使用您擁有的代碼,數據集中的第一個SAS變量將用作索引。一個選擇不好的索引可能會對你的數據庫產生嚴重的負面影響(影響其他用戶和你自己)。
我自己使用SAS/Access到Teradata,所以我不知道這些選項是否可用於ODBC,但是這裏是如何明確地定義索引和各種列類型的示例:
data kyle.test
(dbcreate_table_opts='primary index(INDEX_COLUMN)'
dbtype=(INDEX_COLUMN='INTEGER NOT NULL'
, USER_NAME='VARCHAR(120) CHARACTER SET LATIN NOT CASESPECIFIC'
, PHONE_NUMBER='CHAR(10)'
, CONTACT_DATE="DATE FORMAT 'yyyy-mm-dd'"
, FROM_LINE_NUM='SMALLINT'
, DOLLAR_DATA='DECIMAL(15,2)'
)
);
set noagree.no_agreement_list;
run;
注意此使用普通SAS數據步驟,而不是PROC SQL
;在未在dbtype
選項列出的數據集的任何變量將被複制使用標準的SAS轉換。
最後,onc如果你得到這個工作,一定要運行「收集統計」步驟,你可以使用SQL Assistant工具(SQLA)來完成這一步驟。我假設你有權訪問SQLA,特別是如果你有對某些數據庫的寫權限。