2016-09-28 36 views
0

我正在嘗試使用db2cli實用程序和ODBC(值來自dashDB Web控制檯上的連接/連接信息)的dashDB數據庫。在這個時刻,我可以做到完美SELECTINSERT語句,並獲取我所創建的自定義表中的數據,由於命令:dashDB和DB2加載操作

db2cli execsql -connstring "DRIVER={IBM DB2 ODBC DRIVER - IBMDBCL1}; DATABASE=BLUDB; HOSTNAME=yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net; PORT=50000; PROTOCOL=TCPIP; UID=xxxxxx; PWD=xxxxxx" -inputsql /tmp/input.sql 

現在我試圖通過db2cli實用程序執行DB2 LOAD操作,但我不知道如何進行,甚至是否可以這樣做。 我們的目標是從文件中導入數據,而無需對我的DB2 dashDB數據庫進行編目,但只能通過ODBC進行編目。有人知道這種操作是否可行(使用db2cli或其他實用程序)?

回答

0

這是不可能的。 LOAD不是SQL語句,因此無法通過ODBC等SQL接口執行,只能使用DB2 CLP,而這又需要編目數據庫。

ADMIN_CMD()可以通過SQL接口來調用,但是,它需要輸入文件在服務器上 - 它不會對存儲在工作站上的文件工作。

如果JDBC是一個選項,您可以使用CLPPlus IMPORT command

+0

好吧,這證實了我所看到的,輸入文件需要在服務器上。爲了測試目的,我已經通過SP使用dashDB Local成功加載數據,該數據允許將文件從我的機器複製到服務器,但是(不幸的是)這是一個手動的初步步驟,無法使用Bluemix dashDB完成(這是爲什麼實際上我被這個SP卡住了^^)。我將嘗試JDBC選項。順便說一句,非常感謝你的回答! – Steph

+0

經過一些測試後,CLPPLus導入命令就像一個魅力。我可以將本地文件導入到我的Bluemix dashDB表! – Steph

0

您可以嘗試使用REST API加載數據。

實施例:

curl --user dashXXX:XXXXXX -H "Content-Type: multipart/form-data" -X POST -F [email protected]"/home/yogesh/Downloads/datasets/order_details_0.csv" "https://yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net:8443/dashdb-api/load/local/del/dashXXX.ORDER_DETAILS?hasHeaderRow=true&timestampFormat=YYYY-MM-DD%20HH:MM:SS.U" 
+0

感謝您的快速回復,我會嘗試這個,但我已經讀過某處,輸入文件的限制是20MB左右curl實用程序的dashDB服務器。我發現SYSPROC.ADMIN_CMD存儲過程有趣,它允許使用ODBC連接來執行LOAD或IMPORT。 – Steph

0

我已經使用了REST API,並沒有看到任何大小限制。在dashDB local(倉庫db)的版本1.11中,包含了外部表。只要文件在容器上就可以加載。此外,DB2負載鎖定表,直到加載完成,其中外部表加載不會