2017-06-12 87 views
0

我正在使用Maven的Spring Boot應用程序,我使用Sybase數據庫和MyBatis作爲ORM框架。在Spring Boot應用程序中使用MyBatis選擇別名列SQL查詢

我需要執行的查詢,如:

SELECT M.COL_A, M.COL_B, M.COL_C FROM MY_TABLE M 
UNION 
SELECT N.COL_A, N.COL_B, "" AS COL_C FROM MY_TABLE2 N; 

現在MY_TABLE2沒有COL_C列,但我需要選擇它工會條款的工作。當通過MyBatis的執行

此查詢工作正常作爲我的數據庫,但給了我以下錯誤:

com.sybase.jdbc3.jdbc.SybSQLException: Invalid column name ''. 

回答

1

您的應用程序連接似乎啓用QUOTED_IDENTIFIER運行。

例如,切換出你的表名的一對夫婦系統表:

set quoted_identifier on 
SELECT M.id, M.name, M.crdate FROM sysobjects M 
UNION 
SELECT N.id, N.name, "" AS COL_C FROM syscolumns N 
go 

Msg 207, Level 16, State 4: 
Server 'ASE201', Line 2: 
Invalid column name ''. 

您可以嘗試在你的應用程序的連接禁用QUOTED_IDENTIFIER(對不起,不知道如何/在那裏你會怎麼做,在你的應用程序),或用雙引號替換雙引號,例如:

set quoted_identifier on 
SELECT M.id, M.name, M.crdate FROM sysobjects M 
UNION 
SELECT N.id, N.name, '' AS COL_C FROM syscolumns N 
go 

id  name   crdate 
------- --------------- ------------------- 
     1 sysobjects  May 31 2016 12:55PM 
     2 sysindexes  May 31 2016 12:55PM 
     3 syscolumns  May 31 2016 12:55PM 
     4 systypes  May 31 2016 12:55PM 
     8 syslogs   May 31 2016 12:55PM 
... snip ... 
+0

感謝大多數markp!它爲我工作。 –

+0

@SuhasBadhe;大;如果沒有其他問題/疑慮,我建議您將問題標記爲已回答 – markp

相關問題