SQL表不存在

时间:2014-03-01 22:35:45

标签: sql oracle

这就是:

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
Discount
Taxes
Customer
Vehicles
WorkOrder
Task
TaskPart
Employee
EmplyeeTask
WorkOrderPart
InvoiceDetails

TABLE_NAME
------------------------------
Invoice
Parts
InvoicePrimaries

14 rows selected.

SQL> select * from Discount;
select * from Discount
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL>

我无法访问该表。我可以在C#中使它工作正常,但在Oracle GUI和SQL命令行中,我无法选择表。 (这是一个使用Oracle Express的个人自制数据库)

1 个答案:

答案 0 :(得分:4)

因为在user_tables中,表名用大写和小写字母书写。我假设您使用

之类的东西创建了这些表
create table "Discount" ...

一般来说,oracle以大写字母保存表名,而没有双重配额的表名以大写形式搜索。因此你的

select * from Discount 

搜索名为DISCOUNT而非Discount的表。您必须明确告诉oracle您要保留表名的字母大小写。这也是通过双配额完成的。所以

select * from "Discount"

应该有用。