このトピックでは、Tablestore SDK for Node.js を使用して SQL 文を実行し、データをクエリする方法について説明します。
前提条件
クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。
マッピングテーブルが作成されていること。詳細については、「マッピングテーブルを作成する」をご参照ください。
パラメーター
パラメーター | 説明 |
query | SQL 文。必要な機能に基づいてこのパラメーターを設定します。 |
例
次のサンプルコードは、test_table という名前のテーブル内のすべてのデータをクエリする方法の例を示しています。
const client = require('./client');
const params = {
query: "select * from test_table",
}
client.sqlQuery(params, function (err, resp) {
if (err) {
console.log('sqlQuery error:', err.toString()); // sqlQuery エラー
} else {
console.log('sqlQuery success:', resp); // sqlQuery 成功
console.log(resp.sqlRows.rowCount.toFloat64());
console.log(resp.sqlRows.columnCount);
console.log(resp.sqlRows.sqlTableMeta)
for (let i = 0; i < resp.sqlRows.rowCount.toFloat64(); i++) {
for (let j = 0; j < resp.sqlRows.columnCount; j++) {
let data = resp.sqlRows.get(i, j);
// Process data of the Binary type. // Binary タイプのデータを処理します。
if (resp.sqlRows.sqlTableMeta.schemas[j].typeName === "BINARY") {
let int8Array = data.valueArray();
console.log(int8Array);
}
// Process data of the Long type. // Long タイプのデータを処理します。
if (resp.sqlRows.sqlTableMeta.schemas[j].typeName === "LONG") {
console.log(data.toFloat64());
}
console.log("i:" + i, ", j:" + j + ":" + data);
}
}
}
});FAQ
詳細については、「SQL を使用してデータをクエリするときに「メインテーブルのスキャン行数がクォータを超えています。メインテーブルの行クォータは 100000 です」というエラーメッセージが表示される場合の対処方法」をご参照ください。
詳細については、「SQL 文を実行してデータをクエリするときにデータ遅延が発生する場合の対処方法」をご参照ください。
詳細については、「ワイルドカード検索を使用してデータをクエリするときに「[WILDCARD_QUERY] クエリのフィールド値の長さが 32 より長い」という例外が発生する場合の対処方法」をご参照ください。
参照
詳細については、「データのクエリ」をご参照ください。
詳細については、「SQL クエリの一般的なエラーをトラブルシューティングする方法」をご参照ください。