希望是一个简单的问题。
error_reporting(E_ALL);
ini_set('display_errors', '1');
$c = oci_connect('whatmyusrnameis', 'whatmypwdis', 'host');
if ($c) {
echo 'connection';
}
$s = oci_parse($c, 'select * from mantis_bug_table');
oci_execute($s);
结果如下
警告 oci_execute():ORA-00942:表或 View 不存在
但连接不会导致任何错误,数据库表确实存在并且不为空。
有什么想法吗???谢谢 :)。
最佳答案
通常这有四种可能的问题之一
- 您没有连接到您认为的数据库(可能不是这样)
- 您没有访问该表的权限(请参阅 Justin Cave 关于 Grant 的回答)
- 您可能需要将所有者添加到表名中,例如
select * from DB_USER.mantis_bug_table
(如果您不想限定表名,请参阅 Justin Cave 关于 SYNONYM 的回答) - 该表确实不存在,可能是拼写错误
您可以通过运行以下命令来诊断此问题
SELECT * FROM ALL_TABLES WHERE UPPER(table_name) = 'MANTIS_BUG_TABLE'
关于php - Oracle SELECT 语句不工作 - ORA-00942,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206709/