我正在使用的核心产品上进行了一些更改,有些表现在变为视图,并且它们不再起作用,因为无法使用前面的模式名称引用视图。
例如,以下内容将返回错误:ORA-00942:表或视图不存在
select * from my_schema.my_view;
直接从视图中选择效果很好
select * from my_view;
在使用表的情况下,上述两种情况都可以正常工作,只是视图不接受前面的schema_name。
那是为什么?有没有不错的解决方法?
编辑:选择是由my_schema用户执行的
答案 0 :(得分:1)
感谢您的帮助,尤其是@mathguy。
基本上,问题在于my_view实际上是my_view_r的公共同义词,my_view_r是实际的视图并且是公共的,您不能像我正在尝试的那样使用前面的模式名称来调用它。例如:
select * from my_schema.my_view;
也许对将来遇到此问题的其他人会有所帮助,解决方法是使用如下所示的架构名称为同一视图(my_view_r)创建私有同义词:
create synonym my_schema.my_view for my_view_r;
这是使用架构名称调用同义词的唯一方法。
答案 1 :(得分:0)
这是拨款问题。
const people = [{name: "Johhny", born:1980, passed:2080},{name: "Jenny", born:1990, passed:2093},{name: "Jan", born:1999, passed:2096}];
const result = people.map(person => ({
...person,
age: person.passed - person.born
}))
console.log(result)
答案 2 :(得分:0)
运行以下命令,确保您的架构确实是所有者:
Select * from all_objects where object_name = 'my_view';
我和所有者baninst1一起观看了stvytro。有一个同名的公共同义词。两者都可以工作:
select * from STVYTRO;
select * from baninst1.stvytro;