CJPsAddin 使用教學

用 Excel VBA 執行 Teradata SQL:查詢結果直接放進工作表

從 Teradata 撈資料做報表,常見的做法是在查詢工具跑完、複製結果、貼到 Excel、再整理格式,每個月重來一次。CJP 增益集 (CJPsAddin,免費的 Excel VBA Add-in) 的SQL環境建立 → For Teradata,會在活頁簿裡建一張「Teradata操作區」:在儲存格寫 SQL,按一下按鈕,結果直接放進工作表,並自動補上序號、篩選與凍結窗格。SQL 跟著活頁簿存起來,下個月換個參數就能重跑。

編碼區的 SQL SELECT Branch, COUNT(*) AS Cnt FROM Sales_Table WHERE Data_Month = ?YYYYMM; 執行 查詢結果 SNBranchCnt 1A01128 2A0296 3B01143
選取 SQL,按「執行Tera語法」,結果直接放進工作表

適合這些時候用

  • 每個月固定要撈的報表:SQL 存在 Excel 裡,換個月份參數就能重跑
  • 一次跑好幾段查詢,每段的結果各放一張工作表
  • 先用暫存表 (Volatile Table) 整理中間結果,再分幾段查詢
  • 不確定會撈出多少筆,想先算筆數再決定要不要真的撈
  • 把文字檔裡的資料,逐筆 INSERT 進資料表

需要先安裝 Teradata 的 ODBC 驅動程式,並有可以登入的帳號。

用 CJP 增益集:開始使用

  1. 開一個活頁簿並存檔。沒存過檔、或是用唯讀開啟時,程式會先請你存檔
  2. 在增益集選單「常用功能一」點SQL環境建立… → For Teradata,會新增一張「Teradata操作區」工作表
  3. 第一次使用:按「設定連線參數」→「設定連線資訊」,輸入驅動程式名稱、伺服器、預設資料庫;帳號密碼在第一次執行時會請你輸入
  4. 在黃色的編碼區寫 SQL,選取後按「執行Tera語法」

驅動程式名稱可以在 Windows 的「ODBC 資料來源管理員」查到;伺服器與資料庫名稱請問公司的資料庫管理員。連線資訊與帳號密碼記在這台電腦的使用者資料夾,下次不用再輸入。

CJP 增益集建立的「Teradata操作區」工作表:第 1、2 列是五個按鈕,第 3 列是藍色的備註區,第 4 到 8 列是黃色的編碼區,下方是使用說明
「Teradata操作區」:上方按鈕、備註區、編碼區與使用說明;查詢結果放在 L 欄以後
SQL 一行寫在一列,選取第 17 到 20 列 按住 Ctrl 跳著選取第 17、18、20 列,第 19 列的 WHERE 條件沒有選取
上:一行寫一列,整段選取 下:按住 Ctrl 跳過第 19 列的條件

SQL 寫在哪裡都可以:選到哪裡就跑哪裡

執行的是目前選取的儲存格,所以 SQL 不一定要寫在編碼區:

  • 寫在編碼區:整段貼進去,選取編碼區後執行。建好操作區時,游標已經停在編碼區
  • 寫在儲存格:一行寫一列,選取這幾列後執行。同一張表可以放好幾段 SQL,選哪段就跑哪段
  • 跳列選取:按住 Ctrl 跳著選,沒選到的那一行 (例如某個篩選條件) 暫時不跑,不用刪掉再補回來

選取的範圍裡有空白儲存格時,會自動略過。

操作區的五個按鈕

按鈕做什麼
執行Tera語法執行選取的 SQL,結果放進工作表
資料筆數試算先算出會撈出幾筆,不把資料撈回來
清除查詢結果清掉這張操作區右邊的查詢結果
Tera連線清空重新連線。連線怪怪的時候試試看;暫存表會跟著消失
設定連線參數顯示目前的連線資訊與帳號,可以「設定連線資訊」「設定帳號密碼」,或「密碼重設」(直接改 Teradata 上的密碼)

進階用法

執行 SQL

  • 用分號 ; 分段,一次跑好幾段,每段的結果各放一張工作表 (字串、註解裡的分號不算)
  • 在那一段寫註解 --ExcelSheetName(本月明細),工作表就叫「本月明細」
  • 參數 ?YYYYMM:執行時詢問要填的值,預設上個月底 (10 月執行時是 202609),同一個參數只問一次
  • 「資料筆數試算」只回傳筆數,不把資料撈回來
  • 從網頁複製來的 SQL,看不見的空白 (NBSP) 會先清掉

看結果

  • 第一欄自動補上序號 SN,加上篩選、調整欄寬
  • 第一格的註解記下執行時間、參數與 SQL,日後還知道資料怎麼撈的
  • SAMPLE 1 自動轉成「欄名|值」兩欄,由上往下看
  • SHOW VIEW、SHOW TABLE 一行放一格,加上行號

連線與密碼

  • 連線保留到 Excel 關閉,暫存表下次執行還在
  • 隔天第一次執行、或連線被中斷時,自動重新連線
  • 密碼設定超過 80 天會提醒,可以直接在 Excel 改

寫入資料

  • INSERT INTO 表名 VALUES (?, ?, ?); 搭配 Tab 分隔的文字檔,每一列 INSERT 一次
  • 先檢查問號數量和欄數是否一致、每一列的欄數是否相同
  • 中途失敗時,會告訴你已經匯入幾筆

要記住的 4 件事

  1. 活頁簿要先存檔,而且不能是唯讀;否則程式會先請你存檔
  2. 執行的是選取的儲存格,按按鈕前先確認選取範圍
  3. 只有一段 SQL 時,結果放在操作區的 L 欄以後,每次執行會先整欄清掉上一次的結果;L 欄以後不要放其他資料
  4. 參數名稱用英數字;「資料筆數試算」適合用在 SELECT,CREATE、INSERT 包起來會出錯

常見問題

需要安裝什麼?

Teradata 的 ODBC 驅動程式,以及可以登入的帳號。驅動程式名稱在 Windows 的「ODBC 資料來源管理員」查得到;伺服器與預設資料庫請問公司的資料庫管理員。

可以執行 INSERT、DELETE、CREATE 嗎?

可以,會用你的帳號權限執行,跑完會顯示做了什麼 (例如「插入資訊」「清除表格」)。會改到資料庫的語法,執行前請再確認一次。

密碼改過了,要怎麼更新?

按「設定連線參數」→「設定帳號密碼」,更新記在電腦上的那一組。要直接改 Teradata 上的密碼,按「密碼重設」。

要付費嗎?公司電腦可以裝嗎?

免費。安裝方式和注意事項請看安裝方式。

其他功能說明