2014-01-24 3 views
0
protected String getSQLCarFinder() 
{ 
    StringBuffer sb = new StringBuffer(); 
    sb.append("select distinct T1.ASSET_AMT c1, T1.NAME c2, T1.ALIAS_NAME c3 "); 
    sb.append("from {0}.CARFINDERDB T1 "); 
    sb.append("where T1.ASSET_AMT=? "); 
    sb.append(" and T1.OU_TYPE_CD <> ''NOC'' "); 
    sb.append(" and " + IRDataSource.getLengthFunctionName() + "(T1.ASSET_AMT) <= " + CARFINDER_CODE_MAX_LENGTH); 
    return sb.toString(); 
    } 

오류 :SQL - 자바 : 잘못된 열 이름 : 잘못된 열 이름

[2014-01-24 10:42:20,238] Thread-66 ERROR util.XNAMEDbLogProcessor - XNAMEDbLogProcessor :: logItem : ExceptionAn unexpected token "NOC" was found following "nvalid column name '". Expected tokens may include: ",".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.7.112 
[2014-01-24 10:42:20,238] Thread-66 ERROR util.XNAMEDbLogProcessor - XNAMEDbLogProcessor :: logItem : An error occurred while logging data to the database: An unexpected token "NOC" was found following "nvalid column name '". Expected tokens may include: ",".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.7.112: Data={[2014-01-24-10.42.17.318000] [server_common_name] [common_name] [] [99999] [0] [] [] [] [E] [INTRANET] [2014-01-24] [10:42:20] [CDLT] [Account : com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'NOC'.] } 
[2014-01-24 10:42:22,458] RMI TCP Connection(98501)-172.28.24.27 DEBUG dataaccess.NewCarViewDataSource - NewCarViewDataSource:: connect : IR connect siebel without user and password 
[2014-01-24 10:42:22,477] RMI TCP Connection(98501)-172.28.24.27 DEBUG dataaccess.IRDataSource - IRDataSource:: getLengthFunctionName : Lenght function name:LEN 
[2014-01-24 10:42:22,478] RMI TCP Connection(98501)-172.28.24.27 ERROR server.AssociateCodeListRetrieveCommand - AssociateCodeListRetrieveCommand ::executeINTRANETCall : Exception Invalid column name 'NOC'. 
[2014-01-24 10:42:22,481] RMI TCP Connection(98501)-172.28.24.27 DEBUG server.REPDatabaseCommand - REPDatabaseCommand :: executeCall : Time to execute CDLT transaction = 23 
[2014-01-24 10:42:23,144] Thread-65 DEBUG util.XNAMEAlertLogProcessor - XNAMEAlertLogProcessor :: logItem : Error alert log processor: ALERT-001 -s "Error occurred in AssociateCodeListInfo" Date:  Time: Server name: server_common_name Client name: common_name 


User id: **strong text** 

나는

sb.append(" and T1.OU_TYPE_CD <> /'NOC/' "); 
sb.append(" and T1.OU_TYPE_CD <> ''NOC'' "); 
sb.append(" and T1.OU_TYPE_CD <> 'NOC' "); 

아무것도 작업

을 시도했다. 여기서 내가 뭘 잘못하고 있니? T1.OU_TYPE_CD은 열 이름이고 NOC은 그 값입니다. 내가 T1.OU_TYPE_CD 값이 NOT NOC인지 확인하고 싶습니다.

+1

문자열을 인쇄 할 수 있습니까? –

+0

문제가 확실합니까? 그 뒤에는 무엇이 있을까요? –

답변

0

당신은 NOC 주위에 이중 따옴표가 필요하지 않습니다 : 외부 문자열

sb.append(" and T1.OU_TYPE_CD <> 'NOC' "); 

귀하의 구분은 큰 따옴표, 그래서 작은 따옴표를 이스케이프 할 필요가 없다. '' 필요하지 않습니다

+0

노력하지 않는 것을 시도했다! – user3232895

+0

@ user3232895 . . 'NOC'가이 질의에서 열 이름이 될 수 없으므로 같은 오류가되어서는 안됩니다. –

+0

@ Lionoff .. 불행히도 같은 오류. 열 이름이 잘못되었습니다. NOC! – user3232895

0

열 이름 :

sb.append(" and T1.OU_TYPE_CD <> NOC "); 

편집 :

컴파일러는 열 이름으로 NOC 해석된다. NOCstring 값이라면 문제는 도망 갈 것으로 생각됩니다.

시도 :

sb.append(" and T1.OU_TYPE_CD <> \'NOC\' ");

나이 :

sb.append(" and T1.OU_TYPE_CD NOT IN ('NOC') ");

또는 직접 aux 문자열을 설정 :이 일을해야

String aux = " and T1.OU_TYPE_CD <> 'NOC' "; 
sb.append(aux); 
+0

해당 열 이름이 아니고 NOC 열 T1.OU_TYPE_CD의 데이터입니다. – user3232895

0

.

sb.append ("및 T1.OU_TYPE_CD <> 'NOC'");

정말 같은 오류 메시지가 나타 납니까?