“CID”,“NAME”,“EMAIL”,“LOC”是两个表的属性
创建视图TEST_V为
从表1中选择*
联盟
从表2中选择*;
插入TEST_ERROR(Source_Rowid,Source_Table,Filter_Id, Date_Time,Action)
选择ROWID,'TEST_V',100,sysdate,'请求管理员'
来自TEST_V
LOC =(从位置选择CityList);
位置是另一个表,并在其中定义了CityList,我希望将CityList与LOC匹配,然后添加该行。
我得到的错误是:
SQL错误:ORA-01446:无法从DISTINCT,GROUP BY等视图中选择ROWID或采样。 01446. 00000 - “无法从DISTINCT,GROUP BY等视图中选择ROWID或采样”
答案 0 :(得分:0)
如果需要视图基表的ROWID,请执行以下操作:
Create View TEST_V As
Select Table1.*, rowid as row_id From Table1
Union all
Select Table2.*, rowid as row_id From Table2;
然后:
Insert Into TEST_ERROR (Source_Rowid, Source_Table, Filter_Id, Date_Time, Action)
Select ROW_ID, 'TEST_V', 100, sysdate,'Request Admin'
From TEST_V
Where LOC in (Select CityList From Location);
答案 1 :(得分:0)
(loc =从城市中选择城市列表)这一多个城市中的所有城市都被一次性选中,因此这些不能同时适合于它为什么会给出错误 试试这个(loc =(从citylist ='选择citylist ='作为你桌子中一个城市的名字')) 我认为它会起作用