Version 2014.1.x ~
  プログラムでCSVファイルを1行ずつ読み込む方法を教えてください

%SQL.Util.Proceduresクラスの CSV() プロシジャを使用することにより、実現できます。
(2014.1以前のバージョンにはバグがあり機能しません。)

%SQL.Util.Proceduresクラスのクラスリファレンスにもサンプルコードが用意されています。

例えばtest.csvというファイルが c:\temp にあるという前提で

 

 Set rowtype="Name VARCHAR(50),UID VARCHAR(50), PHONE VARCHAR(50)"
 Set filename="c:\temp\test.csv"
 Set result=##class(%SQL.Statement).%ExecDirect(,"call %SQL_Util.CSV(,?,?)",.rowtype,.filename)
        Set resultSet =result.%NextResult()
 do resultSet.%Display()                 // ここでは簡単にするため全件表示
 Set resultSet="",result=""
 Quit


のようなコードを作成します。

作成したコードを実行することにより結果セットとして各行およびフィールドにアクセスできます。

実行例:
 

USER>do ^CSV
Name    UID     PHONE
山田,太郎 0001    080-1111-1111
bbb     0003    090-2222-2222
ccc     0009    "050-3333-3333"
ddd     0010    0120-17-1972
4 Rows(s) Affected

 


関連トピック: CSV形式のファイルからクラスインスタンスデータをロードする方法はありますか?
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る