将%rowtype与连接和重复列一起使用

wad*_*rld 1 oracle plsql join oracle10g

给定(忽略缺少主键,外键等 - 这不是表设计,只是一个例子):

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;
Run Code Online (Sandbox Code Playgroud)

如何区分将在联接中的两个VENDOR列?

我不认为我可以做c_row.value,因为那会是模棱两可的,我不认为像c_row.p.vendor这样的东西有效.

如何引用两个值列的特定实例?

Jef*_*emp 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;
Run Code Online (Sandbox Code Playgroud)