如何选择名称之间有空格的列



我正试图通过CPP程序中的OCCI调用来执行SQL查询。我想从这两列中读取两列。一个列名中间有一个空格。我尝试将列名括在' '" "[ ]之间,但没有任何帮助。专家能建议我回答这个问题吗。

以下是我的代码:……

string sqlStmt = "SELECT 'REJECTED COST', APPROVED_COST FROM COST_TABLE where PART_NUM= 'PN4879-1'";
stmt = conn->createStatement(sqlStmt);
ResultSet *rset = stmt->executeQuery();
double dRejCost = 0;
double dAppCost = 0;
if(rset->next())
        {
            dRejCost = rset->getNumber(1);
            dAppCost = rset->getNumber(2);
        }
stmt->closeResultSet(rset);
conn->terminateStatement(stmt);

错误/异常:

我得到的错误@dRejCost=rset->getNumber(1);:
ORA-01722:无效号码

PS:ORACLE表有许多列,其中"REJECTED COST"列标题用空格命名。不过,我没有权限要求DB团队更改DB表名称。

提前谢谢。

单引号(')表示字符文字。也就是说,您选择的是字符串'REJECTED COST',它显然不能强制转换为数字。为了选择带空格的列名,应该使用双引号(")。请注意,它们需要转义,因为您在c++字符串中使用它们,该字符串也用双引号表示:

string sqlStmt = "SELECT "REJECTED COST", APPROVED_COST FROM COST_TABLE where PART_NUM= 'PN4879-1'";

相关内容

  • 没有找到相关文章