2017-02-28 443 views
1

我是Teradata的新手。我有一個包含數百萬條記錄的表,我試圖根據使用查找列表的子集來查詢我的where子句。
我的查找列表包含數千條記錄。在Teradata中使用查找列表(使用Teradata SQL Assistant)

在SQL助手這是我已經試過:

SELECT T.* 
FROM a_balance T 
JOIN 
    OPENROWSET (
      BULK 'c:\myfile.txt', 
      FORMATFILE = 'c:\myfileformat.txt' 
    ) B ON T.accountID = B.accountID 

什麼,你會建議在Teradata的SQL助手呢?

+0

嘗試將數據導入到表中。 –

+0

我沒有寫入數據庫的權限。 – treponema

+0

您不需要對a_balance表進行對同一數據庫的寫入訪問。在任何數據庫中請求寫權限。 –

回答

2

由於@denoeth建議 -
您可以創建一個易失性表。
(我還是建議你問的刮傷/操場數據庫)

揮發性
...的定義是一種揮發性表保留在內存 僅的持續時間在其中定義的會話。 空間使用量收取到登錄用戶假脫機空間。因爲易失性 表對於創建它們的會話是私有的,所以系統不會檢查創建,訪問,修改和刪除權限。單個會話可以實現多達1,000個易失性表。

SQL數據定義語言語法及示例釋放15.10 B035-1144-151K 2015年6月

使用Teradata的SQL助理
(適合比較小的數據集)


進口

「工具」 - >「選項」 - >「導入」

設置/取消「忽略導入文件(跳過標題)的第一條記錄」
設置「最大批量大小爲簡單的導入」 999

create volatile set table accounts (accountID int) 
unique primary index (accountID) 
on commit preserve rows 
; 

「文件」 - >「導入數據」

insert into accounts (accountID) values (?); 

「文件」 - > 「導入數據」(取消選擇)

+0

當然,這也可以在沒有使用易失性表格創建表格權限的情況下運行:-) – dnoeth

+0

@denoeth - Touché:-) –

+0

更好地添加'在提交PRESVEVE ROWS'上,大多數客戶運行Teradata模式會話:-)並切換到'SET'以避免重複的行錯誤。 – dnoeth