2017-01-16 2 views
0

하나씩 대량으로 삽입하고 싶습니다. 현재 Java를 사용하여 결과 집합의 행을 한 줄씩 삽입합니다. 한 번에 여러 행을 삽입하는 방법이 있습니까? 할 수 있습니까? (나는 수입품 대량 삽입을 원하지 않는다) 나는 전면에 수색하고 어떤 좋은 대답을 찾아 낼 수 없었다. 어떤 도움은 평가된다?HANA에서 대량 삽입이 가능합니까?

+0

정확히 당신이 원하는 무엇에 더 구체적으로하시기 바랍니다 , 예. 사용할 언어 또는 도구. HANA는 대량 데이터로드를 지원합니다.이로드는 사용하려는 용도에 따라 다릅니다. –

+0

자바를 사용하여 결과 set.But에서 데이터를 삽입 할 때 줄 단위로 삽입하면 더 많은 시간이 소비됩니다. 대량으로 삽입하는 방법이 있습니까? (한 번에 두 개 이상의 행을 삽입하십시오.) – RKR

답변

1

JAVA/JDBC 코드의 경우, 일} 처리 인터페이스가 있습니다. 이 따르는 문제가되지 않습니다 그래서

myDBconn.setAutoCommit(false); 

PreparedStatement insStmt = myDBconn 
     .prepareStatement("INSERT INTO EFASHION.SHOP_FACTS_INS_DEMO VALUES" 
       + " (?, ?, ?, ?, ?, ?, ?, ? )"); 

for (int i = 1; i <= LOOPCNT; i++) { 
    myfacts.createNewFact(); // create a JAVA object with new data 

    // prepare the new data for the batch 
    // note that this is a typed assignment. 
    insStmt.setInt(1, i); 
    insStmt.setInt(2, myfacts.article_id); 
    insStmt.setInt(3, myfacts.color_code); 
    insStmt.setInt(4, myfacts.week_id); 
    insStmt.setInt(5, myfacts.shop_id); 
    insStmt.setDouble(6, myfacts.margin); 
    insStmt.setDouble(7, myfacts.amount_sold); 
    insStmt.setInt(8, myfacts.quantity_sold); 

    // add the new data to the batch 
    insStmt.addBatch(); 

    // limit the batch size, to prevent client side out of memory errors. 
    // but DON'T commit yet! 
    // Remember the data in the current batch is kept in client 
    // memory as long as we don't send it to the HANA server 
    if (i % BATCHSIZE == 0) { 
     // executeBatch returns the number of affected rows. 
     // if we want to use this in the application we just keep adding this up 
     affectedRows += insStmt.executeBatch(); 
    } 
} 
// the final batch execution for whatever remained in the 
// last batch 
affectedRows += insStmt.executeBatch(); 

// finally commit 
myDBconn.commit(); 

모든 것을

는 JDBC의 다큐에 설명되어 있습니다 : 는 여기에 테스트를 위해 사용하는 오래 된 예입니다.

비고 : ARRAY 데이터 유형 (단일 준비된 문에 대해도 배치를 위해도)는 지원되지 않습니다 - 당신이하고 싶었던 것입니다 경우에 ...

+0

@ Lars.Br 그러면 HANA에 배열을 업로드하는 방법은 무엇입니까? 나는 질의를하고 결과 집합에서 배열을 얻지 만,'insStmt.setArray (9, myArray); 이후 HANA에 그것을 어떻게 삽입 할 것인가? 삽입 삽입을 보았을 때'INSERT INTO EFASHION.SHOP_FACTS_INS_DEMO VALUES " + (',?,?,?, ARRAY (?))');'. , ARRAY (1,2,3)) ");'잘 동작합니다. – RKR

+0

기존 토론을 확인하십시오. http://stackoverflow.com/questions/40102034/import-array-type-into-hana/40378906#40378906 및 http://stackoverflow.com/questions/41338263/upload-an -array-in-hana/41353326 # 41353326 –

+0

또한 ARRAY 삽입이 아닌 BULK 데이터로드를 요청했습니다. 특정 수준에 대해 질문 할 때는 올바른 용어를 사용하십시오. 감사. –