给定(忽略缺少主键,外键等 - 这不是关于表设计而只是一个例子):
Order:
----------
ID NUMBER;
VENDOR NUMBER;
PART NUMBER;
Parts:
------------
ID NUMBER;
VENDOR NUMBER;
DESCRIPTION VARCHAR2(1000 CHAR);
cursor c1 is select * from order o left join parts p on o.part = p.id;
c_row c1%rowtype;
如何区分将在加入中的两个VENDOR列?
我不认为我可以做c_row.value,因为那会很模糊,而且我认为c_row.p.vendor之类的东西不起作用。
如何引用两个值列的特定实例?
答案 0 :(得分:5)
我通常会避免使用SELECT *
,因为它会使代码容易受到对表结构的无关更改。
cursor c1 is
select o.id, o.vendor AS order_vendor, o.part,
p.vendor AS part_vendor, p.description
from order o left join parts p on o.part = p.id;
答案 1 :(得分:0)
cursor c1 is select * from order o left join
(select id parts_id, vendor parts_vendor,
description parts_description from parts) p
on o.part = p.parts_id;
c_row c1%rowtype;
你将拥有vendor和parts_vendor。