我是NodeJS的新手,但我一直在努力用它来服务我的Angular项目。我需要访问Oracle DB并使用select语句返回一些信息。我有一个语句使用如下设置的绑定参数正确工作:
var resultSet;
connection.execute("SELECT column_name, decode(data_type, 'TIMESTAMP(3)','NUMBER'"
+ ",'VARCHAR2','STRING','CHAR', 'STRING','NUMBER') as \"DATA_TYPE\""
+ "FROM someTable where table_name = :tableName",
[table], //defined above
{outFormat: oracledb.OBJECT},
function (err, result) {
if (err) {
console.error(err.message);
doRelease(connection);
return;
}
resultSet = result.rows;
console.log("Received " + resultSet.length + " rows.");
res.setHeader('Content-Type', 'application/json');
var JSONresult = JSON.stringify(resultSet);
// console.log(JSONresult);
res.send(JSONresult);
doRelease(connection);
});
这将完全返回我想要的内容,绑定变量就是我想要的。以下代码不起作用:
var resultSet;
connection.execute(
"SELECT DISTINCT :columnName from someTable",
['someColumn'],
{outFormat: oracledb.OBJECT},
function (err, result) {
if (err) {
console.error(err.message);
doRelease(connection);
return;
}
resultSet = result.rows;
console.log("Received " + resultSet.length + " rows.");
res.setHeader('Content-Type', 'application/json');
var JSONresult = JSON.stringify(resultSet);
console.log(JSONresult);
res.send(JSONresult);
doRelease(connection);
});
返回 {“:COLUMNNAME”:“someColumn”} 。我不明白为什么它不能正确显示结果。两个代码片段完全相同,保存SQL查询部分。我知道这个问题很长,但我真的需要帮助。谢谢!
答案 0 :(得分:0)
您可以绑定数据值,而不是语句本身的文本。