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

时间:2014-10-20 05:33:05

标签: sql oracle occi

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

以下是我的代码: ....

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团队更改数据库表名。

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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