我正在编写自定义 Oracle 查询以从子表中删除数据,以避免将外键约束作为清理测试数据的实用程序的一部分。
假设我有两个表 - 表 1 (PK - (id1,id2)) 和表 2 (FK -(id3,id4)),其中 id1,id2,id3,id4 都是数字类型。表 2 对表 1 的主键有一个复合外键约束。这是我现在所拥有的(现在只是选择,稍后将更改为删除):
select (cast(t2.id3 as varchar2(30)) || ',' || cast(t2.id4 as varchar2(10)))
as new_search from Table2 t2 where new_search in
(select (cast(t1.id1 as varchar2(30)) || ',' || cast(t1.id2 as varchar2(10)))
as new_search from Table1 t1 where t1.someColumn=someValue);
但是,执行此操作会给我 ORA-00904 NEW_SEARCH:invalid_identifier。所以,我的问题是:
(1)我在这里做错了什么?(2) 有没有更好的方法来做到这一点?
谢谢。