我想运行查询:" DESCRIBE table_name;"
statement = this.connection.createStatement();
ResultSet rset = statement.executeQuery("DESCRIBE table_name");
我收到了这个错误:
" java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement"
问题是什么?
答案 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)
DESC
是SQL*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),其中包含表元数据