我有两张桌子。
我想使用testg的ID列更新(而不是INSERT)tcolor的ID列。
如果没有收到ORA-01427错误,我该怎么做?
另外,为了将ID转换为testg,我在下面使用了这个查询。有没有办法将此查询更改为UPDATE语句,以便我不必将一个表的一列拉入另一个表。
我的意思是,接受此查询,将其转换为更新语句,以便我可以直接更新我的tcolor ID列。
INSERT INTO testg
(id)
SELECT DISTINCT terr_id
FROM (SELECT DISTINCT jta.terr_id,
jta.name,
low_value_char,
comparison_operator,
high_value_char,
jtva.last_update_date,
jtva.creation_date
FROM jtf_terr_values_all jtva,
jtf_terr_qual_all jtqa,
jtf_terr_all jta
WHERE jtva.terr_qual_id = jtqa.terr_qual_id
AND jtqa.terr_id = jta.terr_id
AND jta.end_date_active > SYSDATE
AND jta.name LIKE 'US%'
AND low_value_char IS NOT NULL
AND comparison_operator IN ( '=' )
AND Regexp_like (low_value_char, '^[[:digit:]]+$')
ORDER BY 6 DESC);
答案 0 :(得分:0)
通过它的声音,您有一个表(testg),并且您希望能够为该表中的每个id分配/链接不同的颜色,但该分配是任意的。
我选择了一个简单的循环。我假设有足够的颜色条目,你不会用完。一旦停止查找要更新的行,就可以通过退出循环来使其变得更加智能。
declare
cursor c_1 is
select distinct testg.id
from testg;
begin
for r_1 in c_1 loop
update tcolor
set id = r_1.id
where id is null
and rownum = 1;
end loop;
commit;
end;
/