从Java运行Oracle查询

时间:2014-07-07 08:02:48

标签: java sql oracle jdbc

我想运行查询:" DESCRIBE table_name;"

statement = this.connection.createStatement();
ResultSet rset = statement.executeQuery("DESCRIBE table_name");

我收到了这个错误:

 " java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement"

问题是什么?

3 个答案:

答案 0 :(得分:2)

DESC[RIBE]是SQL * Plus命令,而不是SQL语句。 DESC命令查询Oracle数据字典,如:

select COLUMN_NAME, DATA_TYPE
  from USER_TAB_COLUMNS
 where TABLE_NAME = 'YOUR_TABLE'

答案 1 :(得分:1)

describe user2.flights;

这里user2是数据库名称,flight是表名。试试这个。

或使用下一个查询

select *
  from user_tab_columns
 where table_name = 'MY_TABLE'
 order by column_id;  

使用此查询。

column_id 是" order"表中的列。

您应该确保' MY_TABLE '除非你一直在添加带有套管的表格(一个坏主意),否则你需要使用= " MyTable"

答案 2 :(得分:1)

DESCSQL*Plus命令。所以,你不能通过JDBC / ODBC使用它。 替代方案可以如下所示。

select RPAD(COLUMN_NAME,30)||' '||DATA_TYPE||'('||DATA_LENGTH||')' as descr
FROM all_tab_cols
  WHERE TABLE_NAME = UPPER('YOUR_TABLE') and owner=UPPER('SCHEMA_NAME');

all_tab_cols数据字典表(view),其中包含表元数据

Oracle's Reference