1 回答

TA貢獻1895條經驗 獲得超7個贊
當然。
你可以這樣做:
var command = `SELECT * FROM TABLE WHERE ATTRIBUTE = 'Value'`;
var stmt = snowflake.createStatement( {sqlText: command} );
var rs = stmt.execute(), col_name ;
if (rs.next()) {
col_name = rs.getColumnValue(3);
stmt = snowflake.createStatement({
sqlText: `SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = :1`,
binds: [col_name]
});
}
我列出了從結果集中提取數據的各種方法:
如何在存儲過程中使用顯示命令 - 不工作
[從上面復制]:
如果您有多個列,則代碼會變得稍微復雜一些:
var result = [], row, col;
while (rs.next()) {
row = [];
for (col = 1; col <= stmt.columnCount; col++)
row.push(rs.getColumnValue(col));
result.push(row);
}
核心 JavaScript 程序員可能會將其壓縮為:
var result = [], cols = Array.from({ length: stmt.columnCount }, (v, i) => i + 1);
while (rs.next()) result.push(cols.map(c => rs.getColumnValue(c)));
最后一個變體,其中第一個結果行包含列名,隨后的行包含結果集中的數據,可通過 result[row][column] 訪問:
var result =
[ Array.from({ length: stmt.columnCount }, (v, i) => stmt.getColumnName(i + 1)) ];
while (rs.next()) result.push(result[0].map(cn => rs.getColumnValue(cn)));
添加回答
舉報