我正在尝试练习内部联接,但是徒劳无功。即使我已经创建了表格和数据,我也在执行内部联接语句时获取表不存在错误
请帮助我。另外,它显示客户与连接图的其余部分断开连接。
我曾尝试对表名使用双引号,但随后它会给出不同的错误
ORA-00904:" CUSTOMERS"。" CUSTOMER_ID":无效的标识符
00904. 00000 - "%s:无效标识符" *原因:
*操作:
SELECT
Orders.OrderID,
Customers.CustomerName
FROM
Orders
inner join Customers on Orders.Customer_Id = Customers.Customer_Id;
其Oracle 11g
和SYS
是所有者。
答案 0 :(得分:1)
问题可能是由于您的 pthread_mutex_lock(&g_lock);
if (g_cur >= g_numfull){
// No works to do, just quit
return NULL; <-- mutex is still locked here
}
// Get the file name
char *filename = g_job_queue[g_cur];
g_cur++;
pthread_mutex_unlock(&g_lock);
语句包含双引号表名称,不全部为大写。请记住,默认情况下,oracle始终以大写形式存储表名和列名,除非您在 pthread_mutex_lock(&g_lock);
if (g_cur >= g_numfull){
// No works to do, just quit
pthread_mutex_unlock(&g_lock);
return NULL;
}
// Get the file name
char *filename = g_job_queue[g_cur];
g_cur++;
pthread_mutex_unlock(&g_lock);
语句中使用了带有不同大小写的双引号字符串。应避免使用整个表名来引用列,因为这是你案件中create table
错误的原因。
所以,如果可以的话,重命名表格从create/Alter
到invalid identifier
和"Customers"
到CUSTOMERS
,或者使用表名引号在您的选择查询中以及适当的别名。
"Orders"
另外,正如@horse已经建议的那样,在任何样本架构中创建表格,如HR,SCOTT等,而不是ORDERS
。