&引用;“表或视图不存在”;通过PHP上的oracle
当我试图从表中访问任何数据时,会出现错误“表或视图不存在”。 我通过PHP将PDO与OCI驱动程序一起使用。 我一直很难通过PHP找到使用oracle的帮助&引用;“表或视图不存在”;通过PHP上的oracle,php,oracle,oracle10g,pdo,oracle-call-interface,Php,Oracle,Oracle10g,Pdo,Oracle Call Interface,当我试图从表中访问任何数据时,会出现错误“表或视图不存在”。 我通过PHP将PDO与OCI驱动程序一起使用。 我一直很难通过PHP找到使用oracle的帮助 $dbh = new PDO("oci:dbname=listst", DB_USER, DB_PASS); 当我尝试从EntriedLevel中选择*时,我没有得到任何回报(即使EntriedLevel存在并且用户具有select访问权限) 当我尝试从user\u objects中选择OBJECT\u NAME,其中OBJECT\u t
$dbh = new PDO("oci:dbname=listst", DB_USER, DB_PASS);
当我尝试从EntriedLevel中选择*时,我没有得到任何回报(即使EntriedLevel存在并且用户具有select访问权限)
当我尝试从user\u objects中选择OBJECT\u NAME,其中OBJECT\u type='TABLE'
时,我什么也没有得到
当我尝试从所有表格中选择表格名称时,我最终可以看到所有表格
我为我拙劣的写作道歉,这是周五漫长一天的结束。。。有点脑死亡。我想到了两种选择:
- 使用其所在架构的所有者限定表名:
- 为表创建公共同义词:
我想到了两种选择:
- 使用其所在架构的所有者限定表名:
- 为表创建公共同义词:
此表是否在用户的架构中?如果否,则从
user\u objects
中选择时不会返回该值,请尝试在查询中使用完整的schema.tablename。因为您可以从连接到数据库的所有表中获取select Table_名称。我的猜测是,要么连接字符串没有指定数据库,要么它是一个正在丢失的东西,因此db连接不知道要访问哪个架构。您是正确的,提供的答案也是正确的。我相信任何看到这一幕的人都会想“哦,天哪,多棒的n00b”。嗯,我对oracle是全新的,最糟糕的是,我对SQL并不陌生,所以我认为我做的事情是正确的,再加上错误消息有点神秘。我想关键是要注意“视图不存在”并实现视图,即您当前的透视图,可能与当前用户相关,然后您可以通过谷歌透视图或视图和oracle,找到模式,然后高兴地知道发生了什么。Ramble,Ramble…这个表在用户的模式中吗?如果否,则从user\u objects
中选择时不会返回该值,请尝试在查询中使用完整的schema.tablename。因为您可以从连接到数据库的所有表中获取select Table_名称。我的猜测是,要么连接字符串没有指定数据库,要么它是一个正在丢失的东西,因此db连接不知道要访问哪个架构。您是正确的,提供的答案也是正确的。我相信任何看到这一幕的人都会想“哦,天哪,多棒的n00b”。嗯,我对oracle是全新的,最糟糕的是,我对SQL并不陌生,所以我认为我做的事情是正确的,再加上错误消息有点神秘。我想关键是要注意“视图不存在”并实现视图,即您当前的透视图,可能与当前用户相关,然后您可以通过谷歌透视图或视图和oracle,找到模式,然后高兴地知道发生了什么。Ramble,Ramble…或者更好的方法是在tablename指向schema.tablename的位置使用私有同义词,这样同名但来自不同架构的tablename不会发生冲突,或者更好的方法是在tablename指向schema.tablename的位置使用私有同义词,这样同名但来自不同架构的tablename不会发生冲突