我想获取当前架构的所有表名称(我有很多架构) 所以我使用user_tables,其中包含table_name列的系统视图。但是当我试图在java中查询它时,我得到了这个异常
java.sql.SQLSyntaxErrorException:ORA-00903:表名无效
StringBuilder sb = new StringBuilder("SELECT * from FROM SYS.USER_TABLES ");
Query query = em.createNativeQuery(sb.toString());
List list = query.getResultList();
答案 0 :(得分:0)
你有'来自'两次:
"SELECT * from FROM SYS.USER_TABLES "
这被解析为from
是关键字,FROM
是(无效)表名,SYS.USER_TABLES
是表别名(也是无效的,但已经当时失败了。)
应该是:
"SELECT * FROM USER_TABLES"
您不需要评论中提到的SYS.
前缀。如果您只想要表名,则只应选择该列,而不是通过*
选择所有列。