意外的令牌:声明中的CASE [CASE]

时间:2015-02-19 12:05:46

标签: hsqldb

CREATE TEXT TABLE IF NOT EXISTS PPE_COMMON_LOG (LOG_ID int PRIMARY KEY,COMP_NAME varchar(50),LOG_EVENT varchar(50),LOG_LEVEL varchar(30),LOG_MSG varchar(200),LOG_DATETIME datetime,LOG_ERROR_CODE varchar(80) );

Select COUNT(*) as "TCOUNT" From INFORMATION_SCHEMA.SYSTEM_TABLES Where TABLE_NAME = 'PPE_COMMON_LOG';

CASE TCOUNT WHEN 0 then 
    SET TABLE PPE_COMMON_LOG SOURCE "PPE_COMMON_LOG.csv;ignore_first=true;all_quoted=true";
    SET TABLE PPE_COMMON_LOG SOURCE HEADER "LOG_ID,COMP_NAME,LOG_EVENT,LOG_LEVEL,LOG_MSG,LOG_DATETIME,LOG_ERROR_CODE";
END CASE;

它给出了"意外的令牌:CASE in statement [CASE]"

1 个答案:

答案 0 :(得分:0)

CASE TCOUNT WHEN 0的块不正确。您不能在SQL中编写CASE语句来执行其他SQL语句。

如果只想在某些情况下执行SET TABLE语句,具体取决于INFORMATION_SCHEMA中的内容,则在Java中执行SELECT并检查返回计数并根据返回计数执行其他SQL语句。