ORA-00933:控制器调用SQL命令时未正确结束

时间:2017-01-10 08:54:14

标签: sql sybase jdbctemplate sybase-ase

   @Override
  public List<TbCsradminBillpayGroup> findAllMerchantCategory() {
    String SQL = "SELECT * FROM guest.guest.TB_CSRADMIN_BILLPAY_GROUP";  
    List<TbCsradminBillpayGroup> bpGroup = jdbcTemplate.query(SQL, new MerchantCategoryMapper());
    return bpGroup;
  }

当我的控制器类尝试调用此方法时,我遇到错误“SQL命令未正确结束”。我对jdbctemplate btw比较新。什么我错过了查询?

我尝试了所有可用的方法,但仍然没有解决。请帮忙。

2 个答案:

答案 0 :(得分:0)

您的查询中有重复的架构说明符(&#39; guest&#39;),请按以下方式修复:

String SQL = "SELECT * FROM guest.TB_CSRADMIN_BILLPAY_GROUP";

答案 1 :(得分:0)

在Oracle中,您不必查询像database_name.schema_name.table_name

这样的表

我尝试重现错误:

select ora_database_name from dual; -- this gives me database name


select sys_context( 'userenv', 'current_schema' ) from dual;  -- this gives me current schema name

现在,当我尝试使用你所提到的方法时:

select * from MyDBName.MySchemaName.TestTable;

得到以下错误:

ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"

正确的方法是使用模式名称后跟表名; 在你的情况下:

String SQL = "SELECT * FROM guest.TB_CSRADMIN_BILLPAY_GROUP";