Rúbrica de preguntas frecuentes de InterSystems
Esto se puede lograr utilizando el procedimiento CSV()
de la clase %SQL.Util.Procedures
. A continuación, podéis ver un ejemplo de uso (suponiendo que el archivo `test.csv` se encuentra en `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 rset =result.%NextResult()
// To display all results, use do rset.%Display()
While rset.%Next() {
Write "Name:",rset.%GetData(1)," UID:",rset.%GetData(2)," PHONE:",rset.%GetData(3),!
}
Set rset="",result=""
Quit
Set filename="c:\temp\test.csv"
Set result=##class(%SQL.Statement).%ExecDirect(,"call %SQL_Util.CSV(,?,?)",.rowtype,.filename)
Set rset =result.%NextResult()
// To display all results, use do rset.%Display()
While rset.%Next() {
Write "Name:",rset.%GetData(1)," UID:",rset.%GetData(2)," PHONE:",rset.%GetData(3),!
}
Set rset="",result=""
Quit
Al ejecutar lo anterior, podéis acceder a cada fila y a cada campo como un conjunto de resultados:
USER>do ^CSV
Name UID PHONE
aaa 0001 080-1111-1111
bbb 0003 090-2222-2222
ccc 0009 050-3333-3333
ddd 0010 0120-17-1972
4 Rows(s) Affected
Name UID PHONE
aaa 0001 080-1111-1111
bbb 0003 090-2222-2222
ccc 0009 050-3333-3333
ddd 0010 0120-17-1972
4 Rows(s) Affected
Podéis consultar también la documentación oficial que hace referencia a la clase %SQL.Util.Procedures aquí.