2016-09-05 6 views
-2

SQLにデータを挿入します。私はcfqueryタグを使用してSQLクエリを操作しています。BULK INSERTまたはLOAD DATAを使用してCSVファイルをデータベース(sql)にインポートします。

これが私の最初の試みである:

<body> 
    <cfquery NAME="Insert" DATASOURCE="#app.dsn#"> 
     LOAD DATA INFILE "F:\app\new.csv" 
     INTO TABLE FROM CSVIMP 
     FIELDS TERMINATED BY ',' 
     LINES TERMINATED BY '\r\n'; 
    </cfquery> 
    <output> 
     <CFQUERY NAME="Show" DATASOURCE="#app.dsn#"> 
      SELECT * FROM CSVIMP 
     </CFQUERY> 
     #Show# 
    </output> 
    </body> 

そして、これは働いていなかったので、私はそれをBULK INSERTを持つ撮影を与えます。
私の2回目の試行:

<body> 
<cfquery NAME="Insert" DATASOURCE="#app.dsn#"> 
    BULK INSERT CSVIMP FROM ‘F:\app\new.csv’ 
    WITH (FIRSTROW = 2, FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’) 
</cfquery> 
<output> 
    <CFQUERY NAME="Show" DATASOURCE="#app.dsn#"> 
     SELECT * FROM CSVIMP 
    </CFQUERY> 
    #Show# 
</output> 
</body> 

しかし、たとえこれが機能していません。 それは私に何らかのエラーを与えていません、単にcsvの値がMySQLに挿入されていません。

CSVは、このようなものです:
new.csv:

Test,Test2 
Test3,Test4 

私は私が間違ってやっていますか?

+0

それはFだが:, – T2Admin

+0

@Drew エラーがデータベースクエリを実行することを編集することを忘れていました。 [Macromedia] [SQLServer JDBCドライバ] [SQLServer] 'LOCAL'付近の構文が正しくありません。 – T2Admin

+0

@DrewデフォルトはLOCALがなく、私に何のエラーも与えていませんでした。今私はローカルを追加し、それは私にエラーを与えるので、私はそれも動作していないと思う。 スラッシュは正しいです。 – T2Admin

答えて

-1

私はちょうどそれをループに入れる必要がありました。

<cfloop query="csv_query"> 
       <cfquery datasource="#app.dsn#"> 
        INSERT INTO CSVIMP (
         Test1, 
         Test2 
        ) VALUES (
         '#csv_query.column_1#', 
         '#csv_query.column_2#' 
        ) 
       </cfquery> 
     </cfloop> 
+0

-1これは、バルクローディングツールに関するオリジナルの質問には答えません。プラス質問自体は非常に不明です。テキストには、使用されているデータベースはMySQLですが、構文、質問タグ、およびエラーメッセージの一部はSQL Serverのものです。 – Leigh

関連する問題