내 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 : 잘못된 번호
추신 : 오라클 테이블에는 "REJECTED COST"열 머리글의 이름이 속도. DB 팀에게 DB 테이블 이름을 변경하도록 요청할 권한이 없습니다.
미리 감사드립니다.
표준 SQL은 큰 따옴표로 묶어야하는 등의 식별자가 필요합니다 :' "거부 됨 당신은 큰 따옴표로 표시되는 C의 ++ 문자열, 내부를 사용하는 것처럼 그들이 탈출해야합니다 COST "와 오라클도 마찬가지입니다. 귀하의 코드는 다음을 사용해야합니다 :'string sqlStmt = "SELECT \"거절 된 비용 \ ", ....";'(또는 C가 이스케이프 C로 문자열 내에서 사용하는 것). 작은 따옴표는 SQL 문에서 문자열 리터럴에만 사용됩니다. 그러나 "* ORA-01722 : 유효하지 않은 숫자 *"는 현재 명령문이 해당 열에 대해 문자열 '..'을 리턴한다는 사실에서 유래합니다. –